#include <bits/stdc++.h> #define il inline using namespace std; using ll = long long; using ull = unsigned long long; const ll N = 1e5 + 5, mod = 998244353, inf = 2e18; const double esp=1e-4; il void solve(){ ll n; cin>>n; vector<ll>a(n+1),dp; for(int i=1;i<=n;i++){ cin>>a[i]; } //vector里面只有数组长度有意义,数据并没有意义 dp.push_back(a[1]); for(int i=2;i<=n;i++){ if(a[i]>dp.back()){ dp.push_back(a[i]); }else{ auto it=upper_bound(dp.begin(),dp.end(),a[i]); *it=a[i]; } } cout<<dp.size(); } int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int t = 1; //cin >> t; while (t--) { solve(); } return 0; }