刷题训练 day49 | 第九章 动态规划 part17

题目1:

java 复制代码
class Solution {
    public int countSubstrings(String s) {
        boolean[][] dp = new boolean[s.length()][s.length()];
        int result=0;
        for(int i=dp.length-1;i>=0;i--){
            for (int j=i;j<dp[0].length;j++){
                 if (s.charAt(i)==s.charAt(j)){
                    if (j-i<=1){
                       dp[i][j]=true;
                       result++;
                    }else if (dp[i+1][j-1]==true){
                       dp[i][j]=true;
                       result++;
                    }
                 }
            }
        }
        return result;
    }
}

题目2:

java 复制代码
public class Solution {
    public int longestPalindromeSubseq(String s) {
        int len = s.length();
        int[][] dp = new int[len + 1][len + 1];
        for (int i = len - 1; i >= 0; i--) { // 从后往前遍历 保证情况不漏
            dp[i][i] = 1; // 初始化
            for (int j = i + 1; j < len; j++) {
                if (s.charAt(i) == s.charAt(j)) {
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                } else {
                    dp[i][j] = Math.max(dp[i + 1][j], Math.max(dp[i][j], dp[i][j - 1]));
                }
            }
        }
        return dp[0][len - 1];
    }
}
相关推荐
cxoptics9 分钟前
偏振片(起偏器/检偏器)怎么区分?
java
β添砖java15 分钟前
机器学习2 KNN算法、距离度量、特征预处理、超参数选择、手写数字、鸢尾花
人工智能·算法·机器学习
TAN-90°-21 分钟前
Deep Learning for Computer Vision——Generative Models 2
人工智能·深度学习·神经网络·算法·目标检测·机器学习·计算机视觉
StevenLdh29 分钟前
第四期 · 云端同步与冲突仲裁:离线可写、多端一致的工程解法
java·微信小程序
Rabitebla29 分钟前
【Linux系统编程】指令(三):创建、删除、复制、移动、看内容
linux·数据结构·c++·算法
事已至此先睡覺吧39 分钟前
第三篇:Java 流程控制详解:条件判断、循环与跳转语句
java·开发语言
毕业设计70340 分钟前
(免费领源码) SpringBoot 游戏交易平台17600-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·spring boot·mysql·决策树·mybatis·idea·推荐算法
一 乐1 小时前
自习室座位预约管理系统|基于springboot + vue自习室座位预约管理系统(源码+数据库+文档)
java·vue.js·spring boot
圣保罗的大教堂1 小时前
leetcode 1401. 圆和矩形是否有重叠 中等
leetcode
qq_410194291 小时前
.NET 8.0 下基于 PaddleOCRSharp 的离线文字识别落地指南
算法·.net