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