不是连续子串
#include<bits/stdc++.h> using namespace std; int a[1005], dp[1005]; int main(){ int n; cin >> n; for(int i = 1; i <= n; i ++ ) cin >> a[i]; int cnt = 0; for(int i = 1; i <= n; i ++ ){ dp[i] = 1; for(int j = 1; j < i; j ++ ){ if(a[i] > a[j]) dp[i] = max(dp[i], dp[j] + 1); } cnt = max(cnt, dp[i]); } cout << cnt; return 0; }
对于每个 i ,先dp[ i ]下标初始化 1 ,与每个小于 i 下标 的 j 比较,a[ i ] > a[ j ]时,更新dp[ i ]。
0 条评论