题目
image.png
和第5题很像啊,要连着一起看
//www.greatytc.com/p/de6ec6c8efdb
题解
题解1
// 和5的思路很像,遍历的顺序也很像
class Solution {
public int longestPalindromeSubseq(String s) {
int n = s.length();
int[][] dp = new int[n][n];
for (int i = 0; i < n; i++) {
dp[i][i] = 1;
}
for (int i = n - 2; i >= 0; i--) {
for (int j = i+1; j < n; j++) { // 遍历顺序
if (s.charAt(i) == s.charAt(j)) {
dp[i][j] = dp[i+1][j-1] + 2; // 所以可以合并
// if (i<=j-2) { // 5号题的等号可加可不加,但是这里的等号一定要加
// dp[i][j] = dp[i+1][j-1] + 2;
// } else {
// dp[i][j] = 2;
// }
} else {
dp[i][j] = Math.max(dp[i+1][j], dp[i][j-1]);
}
}
}
return dp[0][n-1];
}
}