用 Python 编写程序,查找按升序或降序排列数字的最小成本
pythonserver side programmingprogramming更新于 2026/1/11 1:16:17
假设我们有一个名为 nums 的数字列表,我们必须找到按任意顺序(升序或降序)对列表进行排序的最小成本。这里的成本是任何元素的旧值和新值之间的差异总和。
因此,如果输入为 [2, 5, 4],则输出将为 2。
为了解决这个问题,我们将遵循以下步骤 −
- temp:= 复制数组 nums
- 对列表 temp 进行排序
- c1:= 0, c2:= 0
- n:= nums 的大小
- 对于 0 到 n 范围内的 i,执行
- 如果 nums[i] 与 temp[i] 不同,则
- c1 := c1 + |nums[i]-temp[i]|
- 如果 nums[i] 与temp[n-1-i],则
- c2 := c2 + |nums[i]-temp[n-i-1]|
- 如果 nums[i] 与 temp[i] 不同,则
- 返回 c1 和 c2 中的最小值
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, nums): temp=nums.copy() temp.sort() c1=0 c2=0 n=len(nums) for i in range(n): if nums[i]!=temp[i]: c1+=abs(nums[i]-temp[i]) if nums[i]!=temp[n-1-i]: c2+=abs(nums[i]-temp[n-i-1]) return min(c1,c2) ob = Solution() print(ob.solve([2, 5, 4]))
输入
[2, 5, 4]
输出
2
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

