516. 最长回文子序列
https://leetcode-cn.com/problems/longest-palindromic-subsequence/submissions/
解法一:dp
用dp[i][j]
表示s[i...j]
的最长回文子序列 当s[i] == s[j]
时,s[i...j]
的最长回文子序列由s[i+1...j-1]
与头尾的s[i]
和s[j]
构成,即dp[i][j] = dp[i+1][j-1]+2
当s[i] != s[j]
时,s[i...j]
的最长回文子序列就是s[i+1...j]
和s[i...j-1]
中较长的,即dp[i][j] = max(dp[i+1][j], dp[i][j-1])
边界:串长度为1,即i==j时,dp[i][j]=1
;i<j时,dp[i][j]=0
,因此只需要遍历上三角矩阵
最后更新于