双指针和codetop2(最短路问题BFS)
双指针和codetop2
- 1.双指针
- 1.[复写0](https://leetcode.cn/problems/duplicate-zeros/)
- 2.动态规划
- 1.[珠宝的最高价值](https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof/description/)
- 2.[解码方法](https://leetcode.cn/problems/decode-ways/)
- 3.[下降路径最小和](https://leetcode.cn/problems/minimum-falling-path-sum/description/)
- 4.[最小路径和](https://leetcode.cn/problems/minimum-path-sum/)
- 3.最短路问题
- 1.[迷宫中离入口最近的出口](https://leetcode.cn/problems/nearest-exit-from-entrance-in-maze/)
1.双指针
1.复写0
2.动态规划
1.珠宝的最高价值
//动态规划一般错误都发生在下表映射
2.解码方法
// //dp[i]表示以i位置为结尾的解码总数
//s[i]和s[i-1],s[i]可以单独解码,也可以和s[i-1]结合后解码所以s[i]单独解码时dp[i]=dp[i-1]
//和s[i-1]结合解码的时候dp[i]=dp[i-2]
//dp[i]=dp[i-1]+dp[i-2];
3.下降路径最小和
//填表的时候要把之前的表全部围起来初始化dp
4.最小路径和
//初始化要保证不影响最后的值//要先全填成无穷大,只有影响dp[1][1]两个地方填成0;
3.最短路问题
//一般用队列,和一个标记数组,队列里存放开头,看这个值能通向哪另外几个地方,然后让这个开头出队列,让它一步能到达的那几个地方入队列(就是一层一层往外扩),直到走到终点,然后看谁先走到终点,谁就是最短的,
//bool数组用来标记走过的地方