题目:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201005102520841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjcyMTQxMg==,size_16,color_FFFFFF,t_70#pic_center)
分析:等差数列问题,我选择枚举差值。公差为0-。。的情况下,求解最值。
easy,代码又有问题,找不出来。o(╥﹏╥)o。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int> A;
int B[20005];
int maxx=-1,minn=1000000;
for(int i=0;i<A.size();i++)
{
maxx=max(maxx,A[i]);
minn=min(minn,A[i]);
}q
int t=maxx-minn;
int ans=0;
for(int i=0;i<=t;i++)
{
memset(B,0,sizeof(B));
for(int j=0;j<A.size();j++)
{
if(A[j]-i>=0)
{
B[A[j]]=max(B[A[j]],1+B[A[j]-i]);
ans=max(ans,B[A[j]]);
}
}
}
for(int i=0;i<=t;i++)
{
memset(B,0,sizeof(B));
for(int j=0;j<A.size();j++)
{
{
B[A[j]]=max(B[A[j]],1+B[A[j]+i]);
ans=max(ans,B[A[j]]);
}
}
}
return ans;
}