不用二分查找会超时 有个5分的样例会过不去
AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
int main()
{
cin >> n;
int a;
int num[n] = {0};
int ans = 1;
for (int i = 1; i <= n; i++)
{
cin >> a;
if (i == 1)
{
num[ans] = a;
}
if (a > num[ans])
{
ans++;
num[ans] = a;
}
if (a < num[ans])
{
int l = 1;
int r = ans;
while (l <= r)
{
int mid = (l + r) / 2;
if (num[mid] > a)
r = mid - 1;
else
l = mid + 1;
}
num[l] = a;
}
}
cout << ans;
return 0;
}