美文网首页
300. 最长递增子序列

300. 最长递增子序列

作者: 程序员小2 | 来源:发表于2022-10-24 14:24 被阅读0次

    题目:

    给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

    子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

    示例 1:

    输入:nums = [10,9,2,5,3,7,101,18]
    输出:4
    解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。
    示例 2:

    输入:nums = [0,1,0,3,2,3]
    输出:4
    示例 3:

    输入:nums = [7,7,7,7,7,7,7]
    输出:1

    提示:

    1 <= nums.length <= 2500
    -10^4 <= nums[i] <= 10^4

    java代码:

    class Solution {
        public int lengthOfLIS(int[] nums) {
            int n = nums.length;
            if(n == 0) {
                return 0;
            }
            
            int[] dp = new int[n];
            dp[0] = 1;
            int max = 1;
            for(int i=1;i<n;i++) {
                dp[i] =1;
                for(int j=0;j<i;j++) {
                    if(nums[i]>nums[j]) {
                        dp[i] = Math.max(dp[i], dp[j]+1);
                    }
                }
                max = Math.max(max , dp[i]);
            }
            return max;
        }
    }
    

    相关文章

      网友评论

          本文标题:300. 最长递增子序列

          本文链接:https://www.haomeiwen.com/subject/hxrgzrtx.html