classSolution{public:intlengthOfLIS(vector<int>&nums){if(nums.empty())return0;// dp[i] := Length of LIS ending at nums[i]vector<int>dp(nums.size(),1);for(inti=1;i<nums.size();++i)for(intj=0;j<i;++j)if(nums[j]<nums[i])dp[i]=max(dp[i],dp[j]+1);return*max_element(begin(dp),end(dp));}};
classSolution{publicintlengthOfLIS(int[]nums){if(nums.length==0)return0;// dp[i] := Length of LIS ending at nums[i]int[]dp=newint[nums.length];Arrays.fill(dp,1);for(inti=1;i<nums.length;++i)for(intj=0;j<i;++j)if(nums[j]<nums[i])dp[i]=Math.max(dp[i],dp[j]+1);returnArrays.stream(dp).max().getAsInt();}}
classSolution:deflengthOfLIS(self,nums:List[int])->int:ifnotnums:return0# dp[i] := LIS ending at nums[i]dp=[1]*len(nums)foriinrange(1,len(nums)):forjinrange(i):ifnums[j]<nums[i]:dp[i]=max(dp[i],dp[j]+1)returnmax(dp)