最长非降子序列

原创 2016年08月29日 22:46:53
#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。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

最长非降子序列 动态规划 java

1. 案例提出 给定一个由n个正整数组成的序列,从该序列中删除若干个整数,使剩下的整数组成非降子序列,求最长的非降子序列。 例如,由12个正整数组成的序列为: 48,16,45,47,52,46...

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

http://www.360doc.com/content/13/0601/00/8076359_289597587.shtml 让我们沿用“入门”一节里那道简单题的思路来一步步找到“状态”和“...

最长非降子序列模型

1)首先最长单调非增子序列(一维) 描述: 给定一整型数列{a1,a2...,an}(0 如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。 题目链接...

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

看动态规划的题 在topcoder里看的这道题就来练练手 Problem Statement  A sequence of numbers is called a zig-zag sequence ...
  • yf224
  • yf224
  • 2017年05月09日 17:41
  • 140

LIS最长单调递增子序列

  • 2014年05月18日 16:23
  • 930B
  • 下载

最长递增子序列LCS的实现C源码

  • 2009年04月03日 19:07
  • 155KB
  • 下载

【bzoj 十连测】[noip2016十连测第八场]Problem B: 降雷皇(最长上升子序列+线段树|next数组)

流云千丈堪醉卧,是谁月下独酌

最长不降奇偶交替子序列

动态规划强化的日子(1)最长不降奇偶交替子序列题目出处:BJFUOJ 1028 http://acm.bjfu.edu.cn/acmhome/problemdetail.do?&method=show...
  • Ivan_wb
  • Ivan_wb
  • 2015年10月22日 23:38
  • 255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最长非降子序列
举报原因:
原因补充:

(最多只允许输入30个字)