题解 | 最长上升子序列(一)
最长上升子序列(一)
https://www.nowcoder.com/practice/5f65ccbb025240bd8458eb6479c2612e
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> nums(n+1);
for(int i=1;i<=n;i++)
{
cin>>nums[i];
}
vector<long> dp(n+1,1);
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(nums[i]>nums[j])
{
dp[i]=max(dp[i],dp[j]+1);
}
}
}
cout <<*max_element(dp.begin(),dp.end());
}
// 64 位输出请用 printf("%lld")
