本文共 954 字,大约阅读时间需要 3 分钟。
力扣原题:
class Solution { public int lengthOfLIS(int[] nums) { if (null == nums || 0 == nums.length) { return 0; } int[] dp = new int[nums.length]; for (int i = 0; i < nums.length; i++) { dp[i] = 1; } // 场景一:dp[i] = max(dp[j] + 1),其中j < i && nums[j] < nums[i] // 场景二:不满足场景一,则dp[i] = 1 int maxLen = 1; for (int i = 1; i < nums.length; i++) { for (int j = i - 1; j >= 0; j--) { // 不符合上升条件 if (nums[j] >= nums[i]) { continue; } if (dp[j] + 1 > dp[i]) { dp[i] = dp[j] + 1; maxLen = Math.max(maxLen, dp[i]); } } } return maxLen; }}
转载地址:http://unaii.baihongyu.com/