#include<iostream>
using namespace std;
int a[100005];
int ct=1;
int main(){
int n; scanf("%d",&n); n--;
int x; scanf("%d",&x); a[1]=x;
while(n--){
scanf("%d",&x);
if(a[ct]<x) {a[++ct]=x; continue;}
int l=0,r=ct+1;
while(l+1<r){
int mid=l+r>>1;
if(a[mid]>x) r=mid;
else l=mid;
}
a[r]=x;
}
printf("%d\n",ct);
return 0;
}
ac代码
要写二分查找!!!