N*N

Nlog(N)
觉得这个更接近于贪心的思想
二分查找,可以更新则不断把a[]中的子数更新小,否则增加a[]

#include<stdio.h>
int s[5009];
int a[5009];
int n;
int lis()
{
int l,r,mid,len=1;
a[1]=s[1];
for(int i=2;i<=n;i++)
{
l=1,r=len;
while(l<=r)
{
mid=(l+r)>>1;
if(a[mid]<s[i])l=mid+1;
else r=mid-1;
}
a[l]=s[i];
if(l>len)len++;
}
return len;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
int i;
for(i=1;i<=n;i++)
{
scanf("%d",&s[i]);
}
printf("%d\n",lis());
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步