zhongweiLeex
zhongweiLeex
# 200题 BFS 方法 上个提交的 有格式问题 ```java class Solution { public int numIslands(char[][] grid) { if (grid == null || grid.length == 0 ){ return 0; } int result =...
不知道为啥, 感觉降维这块 对于我来说老费劲了,搞了好几次,还是差点意思,哈哈哈哈。但是那篇降维文章还是很好的, 只是我对于新知识掌握的比较慢,大家加油!
> 还是没理解。尝试按之前的遍历方向那篇博文 https://labuladong.gitee.io/algo/3/24/71/ > > 画了矩阵图,dp[i][j] 来自于 dp[i-1][j]和 dp[i-1][j-nums[i]] ,那篇博文dp[i][j]来自dp[i-1][j] 和dp[i-1][j-1]、dp[i][j-1],博文说要正向遍历 因为,这样每一步迭代的左边、上边、左上边的位置都是 base case 或者之前计算过的,而且最终结束在我们想要的答案 dp[m][n]。 > > 我画了图,这道题的情况base case 和它相同,方向也一致,为什么这个就是从右到左了,画图的时候怎么区别这种情况呢? 注意: 这个方向不是固定的 一定要弄清楚 当前的状态依赖于从哪个方向传递过来的前一个状态, 比如 如果 i状态依赖于 从 m方向传递过来的...
> @zhongweiLeex 我判断方向错了吗?我画出来两个方向都是左上到右下。区别在于倾斜度不同,为什么一个需要反方向遍历,一个不用呢?  建议再读一下,东哥公众号 `labuladong` 的 动态规划答疑这篇文章, 关于dp方向,讲的蛮清楚的。!
> 交作业~数组迭代自底向上如下 > > ```java > public int calculateMinimumHP(int[][] dungeon) { > int m = dungeon.length; > int n = dungeon[0].length; > int[][] dp = new int[m + 1][n +...
**外部初始化** 使用二维 DP数组 ```java class Solution { public int calculateMinimumHP(int[][] dungeon) { int m = dungeon.length; int n = dungeon[0].length; //dp[i][j] 从i ,j 位置到达 刚好能 到达终点的最低健康点数 int[][] dp = new...
从后往前推导, 如果还是不理解的话 , 可以反转一下 按照传统的 从前往后推导试试看 ```java class Solution { public int calculateMinimumHP(int[][] dungeon) { int m = dungeon.length; int n = dungeon[0].length; //dp[i][j] 表示从 i-1 , j-1 开始 刚好到达...
这个是否可以 定义后面的 freq2Key的 数据结构 为 HashMap 这样拿到 minFreq 也能迅速定位吧 不成熟的小想法
**Java DP写法** ```java class Solution { public boolean isMatch(String s, String p) { if (s == null || p == null) return false; int m = s.length(), n = p.length();...
648题 单词替换 代码部分 ``` // 在 Trie 树中搜索最短词根(最短前缀) String prefix = set.shortestPrefixOf(words[i]); if(prefix != null && !prefix.isEmpty()) { // 如果搜索到了,改写为词根 sb.append(prefix); } else { // 否则,原样放回 sb.append(words[i]); } ``` 中间需要进行一次判空操作...