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

leetcode1312.让字符串成为回文串的最少插入次数

第一种写法:递归

class Solution {private int minInsertions(String s, int left, int right) {//1.当字符串长度不超过1时不需要操作就已经是回文的了if (left >= right) {return 0;}//2。字符串长度超过1时//2.1字符串前后两个字符相等,不需要进行操作if (s.charAt(left) == s.charAt(right)) {return minInsertions(s, left + 1, right - 1);}//2.2字符串前后两个字符不相等,人为操作左或者右添加一个相等字符的操作数是1return 1 + Math.min(minInsertions(s, left + 1, right), minInsertions(s, left, right - 1));}public int minInsertions(String s) {return minInsertions(s, 0, s.length() - 1);}
}

第二种写法:记忆化搜索

class Solution {private int[][] memory;private int minInsertions(String s, int left, int right) {//1.当字符串长度不超过1时不需要操作就已经是回文的了if (left >= right) {return 0;}//2.当记忆数组当中已经存储了这个值时,直接返回if (memory[left][right] != -1) {return memory[left][right];}//3。字符串长度超过1时//3.1字符串前后两个字符相等,不需要进行操作if (s.charAt(left) == s.charAt(right)) {return memory[left][right] = minInsertions(s, left + 1, right - 1);}//3.2字符串前后两个字符不相等,人为操作左或者右添加一个相等字符的操作数是1return memory[left][right] = 1 + Math.min(minInsertions(s, left + 1, right), minInsertions(s, left, right - 1));}public int minInsertions(String s) {memory = new int[s.length()][s.length()];for (int[] ints : memory) {Arrays.fill(ints, -1);}return minInsertions(s, 0, s.length() - 1);}
}

第三种写法:递推

class Solution {public int minInsertions(String s) {int n = s.length();int[][] dp = new int[n][n];for (int i = n - 2; i >= 0; i--) {for (int j = i + 1; j < n; j++) {dp[i][j] = s.charAt(i) == s.charAt(j) ? dp[i + 1][j - 1] : 1 + Math.min(dp[i + 1][j], dp[i][j - 1]);}}return dp[0][n - 1];}
}

http://www.dtcms.com/a/554187.html

相关文章:

  • 宜春做网站 黑酷seo快递网站建站需要什么
  • org.apache.commons.lang3都有什么常用的类
  • edas会议投稿显示格式错误+消除浮动块下面的空白
  • 宁波建设网站公司北京seo案例
  • 虚拟网站仿制教程河南国控建设集团招标网站
  • viewerjs+vue3 using typescript
  • U81904 【模板】树的直径
  • 如何将React自定义语法转化为标准JavaScript语法?
  • 自己做网站主机wordpress 引号被转义
  • 做营销网站推广快速开发安卓app
  • 文件基础操作详解
  • 【22】C语言 - 二维数组详解
  • 嵌入式项目代码架构与分层笔记
  • 自己房子做民宿挂什么网站数字今天科技 网站
  • 建设ca网站aws wordpress 集群
  • Rust数据类型(上):标量类型全解析
  • BPC EPM表单常规设置
  • 关于C++递归函数和指针部分
  • 基于STM32的智能天气时钟
  • 传奇网站建设网站开发公用头部
  • 安徽省建设厅官方网站黄世山电商办公室
  • 做的网站上更改内容改怎么办科技公司logo设计图片
  • 飞腾D2000/8在Ubuntu20.04下压力测试
  • 深度学习模型部署:将 TensorFlow 模型转为 TFLite 适配移动端
  • 新版ubuntu中sac安装问题(缺少libncurses5)
  • 使用Docker搭建YApi接口管理平台
  • 建立网站的成本林州网站建设服务
  • 齐博企业网站创建网站成功案例
  • 遇见诡异的问题/闪动/闪烁/抖动展示不全可以试试 transform: translateZ(0); will-change: transform;
  • 力扣hot100从头刷----100.1环形链表