题解 | 最长上升子序列(一) 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; } }