【发布时间】:2015-07-29 00:40:49
【问题描述】:
假设我有一个正整数数组,每个代表一根杆的长度,例如:
[26, 103, 59]
我想找到一些正整数大小,我会将这些棒中的每一个切割成它。我将受到我削减的总数和剩余部分的总和的惩罚。
示例
例如,如果我将长度如上的杆切割成长度为 6 的片段,我将得到:
杆一(长 26):4 件 + 余数 2
杆二(长 103):17 根 + 剩余 1 根
杆三(长 59):9 根 + 剩余 5 根
处罚是
4 + 17 + 9 = 30 次切割
2 + 1 + 5 = 8 余数
我想要一个算法作为输入:
杆长度数组
削减惩罚成本
剩余罚金
并输出最佳切割尺寸。
【问题讨论】:
-
那么你的代码是什么?你在哪里卡住了?
-
hackerrank.com/contests/juniper-hackathon/challenges/metals 这就是问题所在。我一直在寻找杆的最佳长度
-
你对你的算法有什么初步的想法吗?
-
第一种情况我尝试从数组中取出最小值,并将其用作最佳长度。如果数字非常小而其他数字非常大,则此算法将失败。在这种情况下,总削减成本会高得多。而在其他情况下,如果我考虑取数组总和的平均值,那又是一个非常糟糕的解决方案。
-
约束中的所有数字都足够小,因此您可以暴力破解解决方案......
标签: arrays algorithm divide-and-conquer