Java实现 LeetCode 516 最长回文子序列
2024-09-03 04:21:58
516. 最长回文子序列
给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。
示例 1:
输入:
“bbbab”
输出:
4
一个可能的最长回文子序列为 “bbbb”。
示例 2:
输入:
“cbbd”
输出:
2
一个可能的最长回文子序列为 “bb”。
PS:
动态规划,
第一个就不多说了,dp【i】【j】就是截取后i位,然后挨着截取后i位的第j位
相等就+2,不相等找【i+1】【j】和【i】【j-1】中最大的
第二个,根据第一个我一直是用的我的上一个,因为我是i越来越小
然后直接用两个数组,一个保存上一个,一个记录现在,
然后替换即可
class Solution {
// public int longestPalindromeSubseq(String s) {
// if (s == null || s.length() == 0) {
// return 0;
// }
// int n = s.length();
// int[][] dp = new int[n][n];
// for (int i = n - 1; i >= 0; i--) {
// dp[i][i] = 1;
// for (int j = i + 1; j < n; 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], dp[i][j - 1]);
// }
// }
// }
// return dp[0][n - 1];
// }
public int longestPalindromeSubseq(String s) {
char[] chars=s.toCharArray();
int length=s.length();
int[] current=new int[length];
int[] pre =new int[length];
for(int i=length-1;i>=0;i--){
current[i]=1;
for(int j=i+1;j<length;j++){
if(chars[i]==chars[j]){
current[j]=pre[j-1]+2;
}else{
current[j]=Math.max(current[j-1],pre[j]);
}
}
int[] tmp=pre;
pre=current;
current=tmp;
}
return pre[length-1];
}
}
最新文章
- ABAP 将单元格设置编辑状态 FORM
- objective-c系列-NSMutableString
- Mysql函数instr、locate、position VS like
- ThinkPHP访问不存在的模块跳到404页面
- CUBRID学习笔记 42 Hierarchical QuerySQL层级查询
- 使用inotify检测linux目录内文件变化
- js图片实现延迟加载
- hdu 2391 Filthy Rich
- iOS转场动画封装
- java随机生成字符串和校验
- Oracle下查看索引的语句
- Springmvc 横向源码原理解析(原创)
- jquery实时获取时间
- 强化git
- 20165312 2017-2018-2 《JAVA程序设计》第3周学习总结
- API接口规范V1.0——制定好规范,才好合作开发
- 为什么实数系里不存在最小正数?(Why the smallest positive real number doesn&#39;t exist in the real number system ?)
- 【翻译】追溯“typeof null”的历史
- Scratch3.0——项目层次结构
- 新的JavaScript数据结构Streams
热门文章
- Day_13【IO流】扩展案例1_读取项目文件内容并去重
- 常用中文分词工具分词&;词性标注简单应用(jieba、pyhanlp、pkuseg、foolnltk、thulac、snownlp、nlpir)
- properties文件导出
- 小程序-for循环遍历的使用
- Jmeter-函数助手之${__RandomString(,,)}使用
- 深度学习中的序列模型演变及学习笔记(含RNN/LSTM/GRU/Seq2Seq/Attention机制)
- java ->;Iterator (迭代)
- 剑指Offer01之二维数组中查找目标数
- flask之response
- Docker镜像下载及加速器设置