Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机组成原理

  • 操作系统

  • 计算机网络

  • 设计模式

  • Java

  • Spring

  • SpringCloud

  • MySQL

  • Redis

  • 分布式

  • Zookeeper

  • Dubbo

  • Kafka

  • 数据结构

  • 算法

  • OJ

    • 自定义
    • 排序
    • 位运算
    • 二分查找
    • 递归
    • 双指针(逆向,快慢)
    • 滑动窗口
    • 辅助栈
    • 贪心
    • 回溯
    • 动态规划
      • 二叉树
      • DFS
      • 拼接&拆分
    • 从道家哲学看计算机?
    • 后端
    • OJ
    plantre
    2025-06-12
    目录

    动态规划

    # 5. 最长回文子串 - 力扣(LeetCode) (opens new window)

    class Solution {
        public String longestPalindrome(String s) {
            int n = s.length();
            int ans = 1; // 最长回文子串的长度,擂台
            int leftIndex = 0, rightIndex = 0; // 最长回文子串的左,右位置
            boolean[][] dp = new boolean[n][n]; // dp[i][j],i->j的串是否回文
            // 初始化长度为1的回文子串
            for (int i = 0;i < s.length(); i++) {
                dp[i][i] = true;
            }
            // 初始化长度为2的回文子串
            for (int i = 0; i + 1 < s.length(); i++) {
                if (s.charAt(i) == s.charAt(i + 1)) {
                    dp[i][i + 1] = true;
                    if (ans < 2) {
                        ans = 2;
                        leftIndex = i;
                        rightIndex = i + 1;
                    }
                } 
            }
            // 遍历长度大于2的回文子串
            for (int len = 3; len <= s.length(); len++) {
                for (int left = 0; left < s.length(); left++) {
                    int right = left + len - 1;
                    if (right >= s.length()) break;
                    if (s.charAt(left) == s.charAt(right) && dp[left + 1][right -1]) {
                        dp[left][right] = true;
                        if (len > ans) {
                            ans = len;
                            leftIndex = left;
                            rightIndex = right;
                        }
                    }
                }
            }
            return s.substring(leftIndex, rightIndex + 1);
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39

    # 53. 最大子数组和 - 力扣(LeetCode) (opens new window)

    dp 数组的含义:以 nums[i] 为结尾的「最⼤⼦数组和」为 dp[i]

    dp[i] 有两种「选择」,要么与前⾯的相邻⼦数组连接,形成⼀个和更⼤的⼦数组;要么不与前⾯的⼦数组连接,⾃成⼀派,⾃⼰作为⼀个⼦数组。

    class Solution {
        public int maxSubArray(int[] nums) {
            int n = nums.length;
            if (n == 0) return 0;
            int[] dp = new int[n];
            // base case
            dp[0] = nums[0];
            // 状态转移⽅程
            for (int i = 1; i < n; i++) {
                dp[i] = Math.max(nums[i], nums[i] + dp[i - 1]);
            }
            int res = Integer.MIN_VALUE;
            for (int i = 0; i < n; i++) {
                res = Math.max(res, dp[i]);
            }
            return res;
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    编辑 (opens new window)
    上次更新: 2025/06/13, 00:51:28
    回溯
    二叉树

    ← 回溯 二叉树→

    最近更新
    01
    集成loki
    07-04
    02
    TCP的ESTABLISHED是什么意思
    06-24
    03
    安装1panel
    06-24
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式