class Solution {
public int lengthOfLIS(int[] nums) {
if(nums==null||nums.length==0) return 0;
int[] beforeCounts=new int[nums.length];
for(int i=0;i<nums.length;i++){
beforeCounts[i]=1;
for(int j=0;j<i;j++){
if(nums[j]<nums[i])
beforeCounts[i]=Math.max(beforeCounts[i],beforeCounts[j]+1);
}
}
int result=beforeCounts[0]; //还需要再遍历一遍,注意不是返回beforeCount数组的最后元素
for(int i=1;i<beforeCounts.length;i++){
if(beforeCounts[i]>result)
result=beforeCounts[i];
}
return result;
}
}
LeetCode No.300 最长上升子序列(动态规划)
最新推荐文章于 2024-03-04 22:47:53 发布