关闭

最长非降子序列

127人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
using namespace std;

int lis(int A[], int n){
    int *d = new int[n];
    int len = 1;
    for(int i=0; i<n; ++i){
        d[i] = 1;
        for(int j=0; j<i; ++j)
            if(A[j]<=A[i] && d[j]+1>d[i])
                d[i] = d[j] + 1;
        if(d[i]>len) len = d[i];
    }
    delete[] d;
    return len;
}
int main(){
    int A[] = {
        5, 3, 4, 8, 6, 7
    };
    cout<<lis(A, 6)<<endl;
    return 0;
}

该算法的时间复杂度是O(n^2 ),并不是最优的解法。 还有一种很巧妙的算法可以将时间复杂度降到O(nlogn),网上已经有各种文章介绍它, 这里就不再赘述。传送门: LIS的O(nlogn)解法。 此题还可以用“排序+LCS”来解,感兴趣的话可自行Google。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

动态规划_最大非降子序列的长度

最长非降子序列问题:longest increasing subsequence 给定一整型数列{a1,a2...,an}(n>0),求最大的非降子序列的长度。 如:1 9 10 5 11 2 13的最长非降子序列是1 9 10 11 13,长度为5。 状态转移方程 ...
  • qq_31175231
  • qq_31175231
  • 2017-04-24 19:20
  • 235

动态规划——最长非降子序列数组

http://www.360doc.com/content/13/0601/00/8076359_289597587.shtml 让我们沿用“入门”一节里那道简单题的思路来一步步找到“状态”和“状态转移方程”。假如我们考虑求A[1],A[2],…,A[i]的最长非降子序列的长度,其中i<...
  • seuliujiaguo
  • seuliujiaguo
  • 2014-09-19 09:28
  • 1599

(2)最长不下降子序列问题____动态规划

最长不下降子序列问题即是求:某一数列中
  • y1196645376
  • y1196645376
  • 2014-11-12 00:00
  • 1839

动态规划2:最长非升子序列和最长非降子序列

1.      下降和非降子序列问题: 问题的描述:在一个无序的序列中a1,a2,a3,a4……….an里面找到一个最长的非降子序列(仅仅有该序列中的元素组成)但是要满足:ai>aj(i>j) 问题的分析:由于当前一个元素的...
  • u012577123
  • u012577123
  • 2014-08-27 17:27
  • 830

HDU 1423 Greatest Common Increasing Subsequence(最长公共子序列+最长不下降子序列)

Greatest Common Increasing Subsequence Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis...
  • u013555159
  • u013555159
  • 2016-08-10 15:17
  • 467

动态规划-初级

上一章动态规划入门给了一个非常简单的例子。现在我们讨论更加复杂的问题,如何找到状态之间的转移方程。还是举一个直观的例子:   一个序列有NN个数,分别为A[1],A[2],⋯,A[N]A[1],A[2],\cdots,A[N],求出最长非降子序列的长度。根据第一章我们讲的,我们首先要定义一个“状态...
  • yfzhandd1989
  • yfzhandd1989
  • 2017-12-28 18:07
  • 16

【Algothrim】动态规划实例(最长不下降子序列)

问题描述 设有一个正整数的序列:b1,b2,…,bn,对于下标i1<im,若有bi1≤bi2≤…≤bim 则称存在一个长度为m的不下降序列。 例如,下列数列 13  7 9  16  38 24  37  18...
  • carol123456
  • carol123456
  • 2016-08-04 10:21
  • 2565

TopCoder:ZigZag(动态规划--最长非降子序列)

看动态规划的题 在topcoder里看的这道题就来练练手 Problem Statement  A sequence of numbers is called a zig-zag sequence if the differences between successive numbers...
  • yf224
  • yf224
  • 2017-05-09 17:41
  • 213

BZOJ1046(HAOI2007)[上升序列]--最长下降子序列预处理

bozj1046
  • CHNWJD
  • CHNWJD
  • 2017-07-26 14:49
  • 346

详解最长不下降子序列

详解最长不下降子序列
  • fengyingjie2
  • fengyingjie2
  • 2017-02-10 16:40
  • 1559
    个人资料
    • 访问:198584次
    • 积分:5272
    • 等级:
    • 排名:第6048名
    • 原创:320篇
    • 转载:187篇
    • 译文:1篇
    • 评论:14条
    文章分类