求最长单调递增子序列长度
#include
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
{
if(a[i]
num++;
else if(num>bes)
{
bes=num;
num=1;
}
}
return bes;
}
int main()
{
int n=sizeof(a)/sizeof(int);
//cout<
int res=MaxIncreaseSub(n);
cout<
return 0;
}
输出的竟然是3
------解决方案--------------------
你认为是多少呢?
------解决方案--------------------
1.你要用2重循环,外层循环所有元素,内层循环当前元素后面的所有元素;
2.循环结束是
调试通过代码,输出6
#include
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
{
num = 1;
for(int j=i+1;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 <
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
if(sign
------解决方案--------------------
p[i]>=p[i-1]){
sign=0;
//temp = p[i];
max++;
if(max>maxNum){
maxNum = max;
}
}else{
max=1;
sign=1;
}
}
cout<
}
[/code]