力扣(300,674)补9.11
迪丽瓦拉
2024-03-02 22:28:33
0

300.最长递增子序列

典型dp子序列,但我不会,最难的就是dp数组状态定义。烦。这里定义dp[i]为前i个元素的最长递增子序列。

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

674.最长连续递增序列

可以做,这题我在想设dp(i)为前i个元素中的最长连续子序列,但是处理感觉还有点麻烦,于是又设dp(i)为以元素nums(i)结尾的最长连续递增子序列。

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

相关内容