【发布时间】:2013-10-16 02:33:26
【问题描述】:
请原谅我,但我很困惑,我找不到任何指向正确方向的来源。
给定 n 个元素的列表:
[3, 6, 5, 1]
将值减小到不大于列表的大小,同时保持优先级值彼此之间的相对关系(按其原始顺序)。
约束:
- 必须维持秩序
- 元素 >= 0
- 不同的值
我试图避免排序和创建新列表,而是就地修改列表。
我的预期结果应该是:
[1, 3, 2, 0]
是否存在解决此问题的算法?
【问题讨论】:
-
更新:我已经找到了专门针对这个问题的解决方案,但它不适用于所有问题,尤其是范围很大的列表。 pastebin.com/jBJXcZtm
-
我认为这不是一个真正的解决方案。我只是碰巧为这组特定的价值观工作。
-
这是我一直在努力改进的解决方案:pastebin.com/21vb9RH5 感谢@Geobits 的输入。