贪心问题,直接找要多少个。
#include<stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
int h[200000],m=0,a;
scanf("%d",&h[m++]);
for(int i=1;i<n;i++){
scanf("%d",&a);
int j;
for(j=0;j<m;j++)
if(a<=h[j]){
h[j]=a;
break;
}
if(j==m)
h[m++]=a;
}
printf("%d\n",m);
}
return 0;
}