动态规划算法
1、目标
是求解决策过程最优化的过程。
2、方法
把原问题分解成子问题进行求解,也就是分治的思想。
3、过程
主要分四步:
- 划分子问题:把一个大问题分解为小问题
- 状态表示:如何处理小问题。
- 状态转移:也就是父问题如何推导出子问题。
- 确定边界:确定初始状态是什么?最小的子问题?最终状态又是什么。
4、例题
(1)力扣:5. 最长回文子串
class Solution {
public:
string longestPalindrome(string s) {
int length = s.length();
vector<vector<bool>> answer(length, vector<bool>(length));
int Start = 0,End = 0;
//自己与自己的关系全部设为true,也就是只有一个的情况
for(int i = 0;i < length;i++){
answer[i][i] = true;
}
//开始进行遍历,达到条件的就改成true
for</