程序计数在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 教师闺蜜祝福语简短