leetcode - 300. 最长递增子序列
题目
代码
动态规划
#include <iostream>
#include <vector>
using namespace std;
int lengthOfLIS(vector<int>& nums) {
int n = nums.size();
if(n < 2){
return n;
}
int res = 1;
vector<int> dp(n, 1);
for(int i = 1; i < n; i++){
for(int j = 0; j < i; j++){
if(nums[j] < nums[i]){
dp[i] = max(dp[i], dp[j] + 1);
}
}
}
for(int i = 0; i < n; i++){
res = res > dp[i] ? res : dp[i];
}
return res;
}
int main(){
int n;
cin>>n;
vector<int> nums(n);
for(int i = 0; i < n; i++){
cin>>nums[i];
}
int res;
res = lengthOfLIS(nums);
cout<<res;
return 0;
}