Python中用于将所有值转换为相同值所需操作数量的程序?

Python中用于将所有值转换为相同值所需操作数量的程序?

给定一个整数列表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:将v中所有值作为键和它们的索引i作为值的映射

  • 返回nums中所有v的vtoi[v]的总和

让我们看以下实现,以便更好地理解

更多Python相关文章,请阅读:Python 教程

示例

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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程