Skip to content

Commit 843be34

Browse files
committed
每日一题
1 parent fb1b73c commit 843be34

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363

6464
- [思路](https://leetcode-cn.com/problems/super-egg-drop/solution/ji-ben-dong-tai-gui-hua-jie-fa-by-labuladong/)
6565
- [视频(李永乐nb)](https://www.youtube.com/watch?v=mLV_vOet0ss&t=68s)
66+
- [542. 01 矩阵](https://github.com/Dagon0577/LeetCode/blob/master/力扣每日一题/542.%2001%20矩阵.java)
6667

6768
## leetcode周赛
6869

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Solution {
2+
public int[][] updateMatrix(int[][] matrix) {
3+
int n = matrix.length;
4+
int m = matrix[0].length;
5+
int[][] dp = new int[n][m];
6+
for (int i = 0; i < n; i++) {
7+
for (int j = 0; j < m; j++) {
8+
if (matrix[i][j] == 0) {
9+
dp[i][j] = 0;
10+
} else {
11+
dp[i][j] = n + m;
12+
}
13+
}
14+
}
15+
// 只有 水平向左移动 和 竖直向上移动
16+
for (int i = 0; i < n; i++) {
17+
for (int j = 0; j < m; j++) {
18+
if (i - 1 >= 0) {
19+
dp[i][j] = Math.min(dp[i][j], dp[i - 1][j] + 1);
20+
}
21+
if (j - 1 >= 0) {
22+
dp[i][j] = Math.min(dp[i][j], dp[i][j - 1] + 1);
23+
}
24+
}
25+
}
26+
// 只有 水平向左移动 和 竖直向下移动
27+
for (int i = n - 1; i >= 0; i--) {
28+
for (int j = m - 1; j >= 0; j--) {
29+
if (i + 1 < n) {
30+
dp[i][j] = Math.min(dp[i][j], dp[i + 1][j] + 1);
31+
}
32+
if (j + 1 < m) {
33+
dp[i][j] = Math.min(dp[i][j], dp[i][j + 1] + 1);
34+
}
35+
}
36+
}
37+
return dp;
38+
}
39+
}

0 commit comments

Comments
 (0)