Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đếm số phép toán tối thiểu để tất cả giá trị trong list giống nhau trong Python


Cho list số nguyên nums. Mỗi phép toán: chọn số lớn nhất, biến thành số lớn thứ hai. Tìm số phép toán tối thiểu để tất cả số bằng nhau.

Ví dụ: nums = [5, 9, 2] → 3 (9→5, 5→2, 5→2).

Quan sát: Số phép toán = tổng chỉ số (rank) của mỗi giá trị trong danh sách giá trị duy nhất đã sắp xếp.

Ví dụ triển khai

class Solution:
    def solve(self, nums):
        vals = sorted(set(nums))
        vtoi = {v: i for i, v in enumerate(vals)}
        return sum(vtoi[v] for v in nums)

ob = Solution()
nums = [5, 9, 2]
print(ob.solve(nums))  # 3

Đầu vào

[5, 9, 2]

Đầu ra

3