File tree 2 files changed +40
-0
lines changed 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 63
63
64
64
- [ 思路] ( https://leetcode-cn.com/problems/super-egg-drop/solution/ji-ben-dong-tai-gui-hua-jie-fa-by-labuladong/ )
65
65
- [ 视频(李永乐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 )
66
67
67
68
## leetcode周赛
68
69
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments