用 Python 编写程序来计算将所有值转换为相同值所需的操作次数?
pythonserver side programmingprogramming更新于 2026/2/16 18:20:17
给定一个整数列表 nums,您可以执行以下操作:选择 nums 中的最大数字并将其转换为第二大数字。返回使列表中所有整数相同所需的最少操作数。
因此,如果输入为 nums = [5, 9, 2],则输出将为 3,因为首先选择 9,然后将其设为 5,因此数组为 [5, 5, 2],然后选择 5 并使其成为 2,[5, 2, 2],再次选择 5 并转换为 2,[2, 2, 2]。
为了解决这个问题,我们将遵循以下步骤
vals := 对 nums 中唯一字符的列表进行排序
vtoi := 一个映射,其中包含 vals 中所有值 v 作为键,其索引 i 作为值
返回 nums 中所有 v 的 vtoi[v] 的总和
让我们看看下面的实现以便更好地理解
示例
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))
输入
[5, 9, 2]
输出
3
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

