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];
} }

最新文章

  1. ABAP 将单元格设置编辑状态 FORM
  2. objective-c系列-NSMutableString
  3. Mysql函数instr、locate、position VS like
  4. ThinkPHP访问不存在的模块跳到404页面
  5. CUBRID学习笔记 42 Hierarchical QuerySQL层级查询
  6. 使用inotify检测linux目录内文件变化
  7. js图片实现延迟加载
  8. hdu 2391 Filthy Rich
  9. iOS转场动画封装
  10. java随机生成字符串和校验
  11. Oracle下查看索引的语句
  12. Springmvc 横向源码原理解析(原创)
  13. jquery实时获取时间
  14. 强化git
  15. 20165312 2017-2018-2 《JAVA程序设计》第3周学习总结
  16. API接口规范V1.0——制定好规范,才好合作开发
  17. 为什么实数系里不存在最小正数?(Why the smallest positive real number doesn&#39;t exist in the real number system ?)
  18. 【翻译】追溯“typeof null”的历史
  19. Scratch3.0——项目层次结构
  20. 新的JavaScript数据结构Streams

热门文章

  1. Day_13【IO流】扩展案例1_读取项目文件内容并去重
  2. 常用中文分词工具分词&amp;词性标注简单应用(jieba、pyhanlp、pkuseg、foolnltk、thulac、snownlp、nlpir)
  3. properties文件导出
  4. 小程序-for循环遍历的使用
  5. Jmeter-函数助手之${__RandomString(,,)}使用
  6. 深度学习中的序列模型演变及学习笔记(含RNN/LSTM/GRU/Seq2Seq/Attention机制)
  7. java -&gt;Iterator (迭代)
  8. 剑指Offer01之二维数组中查找目标数
  9. flask之response
  10. Docker镜像下载及加速器设置