题目
思路
- 我竟然还建了个dp[i][j]数组,用来判断从i到j的最长递增子序列的长度…被以前的我秒了。
- 果然一天不写就会拉。
代码
public static int lengthOfLIS(int[] nums) {
int ans=-1;
//dp[i]指从0到i的最长递增子序列长度
int[] dp = new int[nums.length];
//dp[i]为所有比自己小的dp[j]+1的长度的最大值
dp[0]=1;
for(int i=1;i<nums.length;i++){
for(int j=0;j<i;j++){
if(nums[i]>nums[j]) dp[i]=Math.max(dp[i],dp[j]+1);
dp[i]=Math.max(dp[i],1);
ans = Math.max(ans,dp[i]);
}
}
return ans;
}