1.n^2 dp
2.贪心:
很多人都说这个方法是“动态规划,像是贪心”,其实就是贪心。
首先开一个数组,一次读入每一个数x,如果x比当前数组最后一个大,就把x加到数组最后,如果x比最后一个小,就在当前数组中找到第一个比x大的数,然后用x替换它。
数组最后的长度就是答案,数组本身不是答案的解法。
证明:加到最后很好理解,第二个情况的原理是,该步骤不改变答案的值,但可能会使解变优。如果解变优,一定是以后加入的数比当前最后一个还大,如果最后一个值被替换,必然可以,如果不是最后一个,要么它可以被替换回去,要么它和之后的几个一起可以换回去,要么它到最后的所有值,都变小,解变优,更优的解得以加入。