这是什么贪婪或动态编程方法



我们有一个实数序列。所有数字都是唯一的。我们希望通过更改其中一些值来获得升序。我们可以更改任意数字。如何找到最佳算法来确定进行此序列所需的最小更改数?我们可以使用贪婪或动态编程方法。

首先找到最长递增的子序列 http://en.wikipedia.org/wiki/Longest_increasing_subsequence

然后更改所有不属于此子序列的数字以适合规则

(证明:如果我们改变较少的数字并获得升序,那么没有改变的数字最初形成递增的子序列比"最长"更长)

最新更新