题解 | 最长上升子序列(一) O(n^2)循环
最长上升子序列(一)
https://www.nowcoder.com/practice/5164f38b67f846fb8699e9352695cd2f
这题总是没思路,直觉是dp时间复杂度都很低,没想着两次循环
import java.util.*;
public class Solution {
public int LIS (int[] arr) {
int len = arr.length;
if(len == 0){
return 0;
}
int[] dp = new int[arr.length];
//设置数组长度大小的动态规划辅助数组
Arrays.fill(dp, 1);
int res = 1;
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < i; j++) {
if (arr[i] > arr[j]) {
dp[i] = Math.max(dp[j] + 1,dp[i]);
//找到最大长度
res = Math.max(res, dp[i]);
}
}
}
return res;
}
}

查看8道真题和解析
