最长上升序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。
输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
题解
-
动态规划(未优化!!垃圾是我太菜 hhhhh)
- 算法思想
- 使用一个二维数组,根据前面数字的状态推出后续的状态
- 仅需找到比他小的数的最大子序列长度就行,然后加 1
- 记录在状态表中
- 使用一个二维数组,根据前面数字的状态推出后续的状态
- 复杂度分析(垃圾代码)(救不回来了)
- 时间复杂度:O(n^3)
- 空间复杂度:O(n^2)
class Solution { public int lengthOfLIS(int[] nums) { if(nums.length == 0)return 0; boolean[][] res = new boolean[nums.length][nums.length]; for(int i = 0;
- 算法思想