结局最低成本以获取独特物品

问题描述 投票:0回答:1

为N数字N数字和另一个名为sizeN

的成本的数字数组

成本[i]我是索引代表增加元素nums [i]

的成本

结合将所有项目在数字中截然不同的最低成本。

示例:

nums = [3,7,9,7,8] cost = [5,2,5,7,5] answer = 6

解释: nums元素7重复两次,成本为[2,7]

我们可以以成本2的价格选择数字7,然后将其递增3次,以便将其更改为7-> 8-> 9-> 10。因此,增加了3次,因此成本为2 * 3 =6

找到使数字阵列不同的最低成本

构成:

1 <= n <= 10^5 1 <= nums[i] <= 10^9 1 <= cost[i] <= 10^4 我解决此问题的方法是选择最初的独特物品并存储在Java

中的标签中
next以分类顺序以NUM的数字获取重复项,并找到每个元素的成本最低,然后增加项目,直到它成为唯一并计算该元素的成本。
类似地获得将所有重复物的增加成本的总和,直到在nums中变得唯一

但我的方法并不正确,因为我们可以从最小到最大的项目处理并获得答案

并非总是如此。

在时间复杂性较少的时间内解决此问题的正确方法是什么。

这是一个任务问题

Naive算法:

java algorithm
1个回答
0
投票

将每个数字链接到数字中的每个数字与孔中更大的数字[]

  • 分配每个链接从NUM到孔的成本

  • 使用MaxFlow算法找到将每个NUM分配给唯一孔的最便宜的方法。

  • 这将为您提供合理成本的可行解决方案。
  • ,无论如何,在某些情况下,不是最佳的。 当可以通过移动一个数字留下一个孔以填充一个孔来获得更便宜的结果时,就会发生这种情况。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.