qdzxsyt @ 2024-07-14 10:29:24
WA代码:
#include<bits/stdc++.h>
using namespace std;
int n,ans=-1e6;
int f[100100],num[100010],compare=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>num[i];
}
memset(f,1,sizeof f);
for(int i=2;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(num[i]>num[j])
{
f[i]=max(f[j]+1,f[i]);
}
}
}
for(int i=1;i<=n;i++)
{ ans=max(f[i],ans);
}
cout<<ans;
return 0;
}
by xzy_caiji @ 2024-07-14 10:34:29
@qdzxsyt 不会用 memset
就别乱用
by qdzxsyt @ 2024-07-14 10:34:48
帮忙改题的DALAO一定关注!!!!
by xzy_caiji @ 2024-07-14 10:39:22
@qdzxsyt 请用循环初始化数组
by hutao_262218926 @ 2024-07-14 10:41:34
sizeof有问题吧
by hutao_262218926 @ 2024-07-14 10:42:09
sizeof(f)
by jcf666 @ 2024-07-14 10:42:40
#include<bits/stdc++.h>
using namespace std;
int n,ans=-1e6;
int f[100100],num[100010],compare=0;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>num[i];
}
for(int i=1;i<=n;i++)f[i]=1;//改动处
for(int i=2;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(num[i]>num[j])
{
f[i]=max(f[j]+1,f[i]);
}
}
}
for(int i=1;i<=n;i++)
{ ans=max(f[i],ans);
}
cout<<ans;
return 0;
}
by jcf666 @ 2024-07-14 10:43:22
这不就完了?主要还是memset用的有问题
by hutao_262218926 @ 2024-07-14 10:44:45
f[i]=1加输入循环里更简单
by jcf666 @ 2024-07-14 10:45:48
@hutao_262218926 也行,这样就不用多写一个for循环了
by hutao_262218926 @ 2024-07-14 10:49:56
memset(f,1,sizeof(f))结果是16843009,memset只能赋特定值