300. 最长上升子序列

 1 class Solution 
 2 {
 3 public:
 4     int lengthOfLIS(vector<int>& nums) 
 5     {
 6         int n=nums.size();
 7         if(n==0)return 0;
 8         if(n==1)return 1;
 9 
10         vector<int> dp(n,1);
11         int res=0;
12         for(int i=0;i<n;++i)
13         {
14             for(int j=0;j<i;++j)
15             {
16                 if(nums[j]<nums[i])
17                 {
18                     dp[i]=max(dp[i],dp[j]+1);
19                 }
20             }
21             res=max(res,dp[i]);
22         }
23         return res;
24     }
25 };
View Code