程序计数在Python中将所有值转换为相同值所需的操作数吗?
给定一个整数nums列表,您可以执行以下操作:选择以nums为单位的最大数字,然后将其变为第二大数字。返回使列表中的所有整数相同所需的最小操作数。
因此,如果输入类似于nums=[5,9,2],则输出将为3,首先选择9,然后将其设为5,则数组为[5,5,2],然后选择5并使其2,[5,2,2],再次选择5并转换为2,[2,2,2]。
为了解决这个问题,我们将按照以下步骤
vals:=对以数字为单位的唯一字符列表进行排序
vtoi:=以vals中的所有值v为键并将其索引i为值的映射
返回所有v的vtoi[v]的总和(以nums为单位)
让我们看一下下面的实现以获得更好的理解
示例
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
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话