代码随想录三刷day45

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

=

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

一、力扣300. 最长递增子序列

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

二、力扣674. 最长连续递增序列

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

三 、力扣718. 最长重复子数组

class Solution {
    public int findLength(int[] nums1, int[] nums2) {
        int m = nums1.length, n = nums2.length;
        int[][] dp = new int[m+1][n+1];
        int res = 0;
        for(int i = 1; i <= m; i ++){
            for(int j = 1; j <= n; j ++){
                if(nums1[i-1] == nums2[j-1]){
                    dp[i][j] = dp[i-1][j-1]+1;
                }
                res = Math.max(res,dp[i][j]);
            }
        }
        return res;
    }
}

四、力扣1143. 最长公共子序列

在这里插入代码片class Solution {
    public int longestCommonSubsequence(String text1, String text2) {
        int m = text1.length(), n = text2.length();
        int[][] dp = new int[m][n];
        for(int i = 0; i < m; i ++){
            if(text1.charAt(i) == text2.charAt(0)){
                for(int j = i; j < m; j ++){
                    dp[j][0] = 1;
                }
            }
        }
        for(int i = 0; i < n; i ++){
            if(text2.charAt(i) == text1.charAt(0)){
                for(int j = i; j < n; j ++){
                    dp[0][j] = 1;
                }
            }
        }
        for(int i = 1; i < m; i ++){
            for(int j = 1; j < n; j++){
                if(text1.charAt(i) == text2.charAt(j)){
                    dp[i][j] = dp[i-1][j-1]+1;
                }else{
                    dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);
                }
            }
        }
        return dp[m-1][n-1];
    }
}

相关推荐

  1. 代码随想day45

    2024-04-23 13:20:01       36 阅读
  2. 代码随想day44

    2024-04-23 13:20:01       36 阅读
  3. 代码随想day04

    2024-04-23 13:20:01       54 阅读
  4. 代码随想day26

    2024-04-23 13:20:01       48 阅读
  5. 代码随想Day45

    2024-04-23 13:20:01       35 阅读
  6. 代码随想day45

    2024-04-23 13:20:01       27 阅读
  7. 代码随想题笔记Day49

    2024-04-23 13:20:01       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 13:20:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 13:20:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 13:20:01       87 阅读
  4. Python语言-面向对象

    2024-04-23 13:20:01       96 阅读

热门阅读

  1. linux内核网络源码-用户空间与内核的接口

    2024-04-23 13:20:01       44 阅读
  2. 如何在Spring中巧妙应用工厂模式实现解耦

    2024-04-23 13:20:01       40 阅读
  3. Kafka重点笔记

    2024-04-23 13:20:01       36 阅读
  4. 服务器连接校园网

    2024-04-23 13:20:01       34 阅读
  5. 【后端】python深度学习的详细指引

    2024-04-23 13:20:01       36 阅读
  6. MySQL常见函数的讲解

    2024-04-23 13:20:01       40 阅读
  7. 中介者模式:简化对象间的通信

    2024-04-23 13:20:01       34 阅读
  8. Web 前端基础—— Http 和CSS 学习笔记

    2024-04-23 13:20:01       38 阅读
  9. C++设计模式探讨(2)-单例模式

    2024-04-23 13:20:01       34 阅读
  10. 图像超分辨率—SRGAN训练及测试教程(Pytorch)

    2024-04-23 13:20:01       36 阅读