62.不同路径
本题大家掌握动态规划的方法就可以。 数论方法 有点非主流,很难想到。
视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili
class Solution {
public int uniquePaths(int m, int n) {
int[] paths = new int[n];
Arrays.fill(paths, 1);
for (int row = 1; row < m; row++) {
for (int col = 1; col < n; col++) {
paths[col] = paths[col] + paths[col - 1];
}
}
return paths[n - 1];
}
}
63. 不同路径 II
视频讲解:动态规划,这次遇到障碍了| LeetCode:63. 不同路径 II_哔哩哔哩_bilibili
class Solution {
public int uniquePathsWithObstacles(int[][] obstacleMap) {
int rows = obstacleMap.length;
int cols = obstacleMap[0].length;
int[] pathCount = new int[cols];
for (int col = 0; col < cols && obstacleMap[0][col] == 0; col++) {
pathCount[col] = 1;
}
for (int row = 1; row < rows; row++) {
for (int col = 0; col < cols; col++) {
if (obstacleMap[row][col] == 1) {
pathCount[col] = 0;
} else if (col != 0) {
pathCount[col] += pathCount[col - 1];
}
}
}
return pathCount[cols - 1];
}
}
343. 整数拆分 (可跳过)
本题思路并不容易想,一刷建议可以跳过。如果学有余力,可以看视频理解一波。
视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili
96. .不同的二叉搜索树 (可跳过)
本题思路并不容易想,一刷建议可以跳过。 如果学有余力,可以看视频理解一波。