【发布时间】:2014-11-12 12:11:58
【问题描述】:
我们有一个实数序列。所有数字都是唯一的。我们希望通过更改其中一些值来获得升序。我们可以更改任意数字。如何找到最佳算法来确定进行此序列所需的最少更改次数? 我们可以使用贪心或动态规划方法。
【问题讨论】:
标签: algorithm dynamic-programming greedy
我们有一个实数序列。所有数字都是唯一的。我们希望通过更改其中一些值来获得升序。我们可以更改任意数字。如何找到最佳算法来确定进行此序列所需的最少更改次数? 我们可以使用贪心或动态规划方法。
【问题讨论】:
标签: algorithm dynamic-programming greedy
首先找到最长递增子序列http://en.wikipedia.org/wiki/Longest_increasing_subsequence
然后改变所有不属于这个子序列的数字以适应规则
(证明:如果我们改变较少的数字并获得升序,那么没有改变的数字最初形成的递增子序列比'最长'更长)
【讨论】: