首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求最长单一递增子序列长度

2013-01-06 
求最长单调递增子序列长度[解决办法]你认为是多少呢?[解决办法]1.你要用2重循环,外层循环所有元素,内层循

求最长单调递增子序列长度


[解决办法]
你认为是多少呢?
[解决办法]
1.你要用2重循环,外层循环所有元素,内层循环当前元素后面的所有元素;
2.循环结束是<n,不是<n-1,因为最后一个下标是n-1
调试通过代码,输出6
#include <iostream>
using namespace std;
int a[]={5,3,4,7,1,2,3,4,5,6};

int MaxIncreaseSub(int n)
{
    int bes=1,num=1;
    for(int i=0;i<n;i++)
    {
        num = 1;
        for(int j=i+1;j<n;j++)
        {
            if(a[j]>=a[i]) num++;
            else break;
        }
        if(num>bes) bes = num;
    }
    return bes;
}
int main()
{
    int n = sizeof(a)/sizeof(int);
    int res = MaxIncreaseSub(n);
    cout << res << endl;
    return 0;
}

[解决办法]
[code=C++]
void upLong(int*p,int n){
int max = 1;
//int temp=0;
int maxNum=0;
int sign =1;
for(int i =0;i<n;i++){
if(sign
[解决办法]
p[i]>=p[i-1]){
sign=0;
//temp = p[i];
max++;
if(max>maxNum){
maxNum = max;
}
}else{
max=1;
sign=1;
}
}
cout<<maxNum<<endl;

}
[/code]

热点排行