这个代码到底有什么问题,只要运行到第三个for循环立马windows报错,这个简单的动规就因为这个问题弄了一上午也看不出个所以然
只要运行到这里就不行了,这个for进都进不去
for(int i=1;i<=n;i++)
{
if(a[i]>maxx)
{
b=i;
maxx=a[i];
}
}
完整代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[100001],c[100001],t[100001];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>t[i];
for(int i=1;i<=n;i++)
{
int maxx1=0;
for(int j=i;j>0;j--)
{
if(t[i]>t[j])
maxx1=max(maxx1,a[j]);
}
a[i]=maxx1+1;
}
int maxx=0;
int b=0;
for(int i=1;i<=n;i++)
{
if(a[i]>maxx)
{
b=i;
maxx=a[i];
}
}
c[maxx]=a[b];
int m=maxx;
for(int j=b;j>0;j++)
{
if(a[j]==--maxx)
{
c[maxx]=t[j];
}
}
for(int i=1;i<=m;i++)
cout<<c[i]<<" ";
return 0;
}