摘要: 求最长上升子序列,用动态规划的方法,转移方程为:D[i]=max{1,D[j]+1} j=1,2,...,i-1并且 A[j]<A[i]其实怎么用程序把他实现也是不简单的,思想真是伟大。解法二:这个算法其实已经不是DP了,有点像贪心。至于复杂度降低其实是因为这个算法里面用到了二分搜索。本来有N个数要处理是O(n),每次计算要查找N次还是O(n),一共就是O(n^2);现在搜索换成了O(logn)的二分搜索,总的复杂度就变为O(nlogn)了。这个算法的具体操作如下(by RyanWang):开一个栈,每次取栈顶元素top和读到的元素temp做比较,如果temp > top 则将te 阅读全文
posted @ 2011-09-09 20:10 张兰云 阅读(3200) 评论(3) 推荐(2)