读书人

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

发布时间: 2013-01-06 15:44:47 作者: rapoo

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


[解决办法]
你认为是多少呢?
[解决办法]
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]

读书人网 >C语言

热点推荐