当前位置: 首页 > news >正文

最长回文子序列 递归与动态规划

public static int longestPalindromeSubseq(String s) {

        char[] chars = s.toCharArray();

        int n = chars.length;

        int[][] dp = new int[n][n];

        //先约束边界 dp[L][R]

        dp[n-1][n-1] = 1;

        //约束的下边界,那就从上边界开始,直至下边界的前一位

        //此处初始化对角线以及倒数第二的对角线,在上面的分析中已经提到过范围约束,不可能存在对角线左下方的情况

        for (int i = 0; i < n-1; i++) {

            dp[i][i]=1;

            dp[i][i+1] = chars[i]==chars[i+1]?2:1;

        }

        //dp矩阵需画图

        for (int i = 0; i < n - 3; i++) {

            for (int j = i+2; j < n; j++) {

                //将原本的递归,转换为动态规划

// int res1 = process(chars,i+1,j-1);

                int res1 = dp[i+1][j-1];

// int res2 = process(chars,i,j-1);

                int res2 = dp[i][j-1];

// int res3 = process(chars,i+1,j);

                int res3 = dp[i+1][j];

// int res4 = chars[i]==chars[j]?2+res1:0;

                int res4 = chars[i]==chars[j]?2+res1:0;

                //当前要求的值是dp[i][j]

                dp[i][j] = Math.max(Math.max(res1,res4),Math.max(res2,res3));

            }

        }

        return dp[0][n-1];

    }

 

 

http://www.lryc.cn/news/235723.html

相关文章:

  • 学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
  • 67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。
  • 【精选】项目管理工具——Maven详解
  • DVWA - 4
  • gRPC之grpc resolver
  • NI Package Manager创建程序包
  • C语言实现排序介绍
  • 64位ATT汇编语言使用bss段.skip指令储存字符,并使用系统调用输出字符
  • 贝锐蒲公英路由器X4C如何远程访问NAS?
  • Golang Context 的使用指南
  • vue3使用西瓜播放器播放flv、hls、mp4视频
  • 【Promise12数据集】Promise12数据集介绍和预处理
  • Qt设置整体背景颜色
  • Stream流常见操作
  • INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
  • 前端调试只会console.log()?
  • CentOS Linux release 7.9.2009 (Core)中安装配置Tomcat
  • 移动机器人路径规划(四)--- 考虑机器人模型下的运动规划KINODYNAMIC PATHFINDING
  • 服务器数据恢复—VMware虚拟化下误操作导致服务器崩溃的数据恢复案例
  • 微服务实战系列之Gateway
  • GZ038 物联网应用开发赛题第10套
  • 重生之我是一名程序员 35
  • 计算机毕业设计选题推荐-点餐微信小程序/安卓APP-项目实战
  • 分享禁止Win10更新的两种方法
  • SPASS-回归分析
  • 【使用vscode在线web搭建开发环境--code-server搭建】
  • c++ list容器使用详解
  • 【案例】可视化大屏
  • js制作动态表单
  • 解决Kibana初始化失败报错: Unable to connect to Elasticsearch