@@ -50,9 +50,7 @@ n == matrix[0].length
50
50
51
51
์๊ฐ๋ณต์ก๋๋ ` O(n * m) ` ๊ณต๊ฐ๋ณต์ก๋๋ ` O(n * m) ` ์ด๋ค.
52
52
53
- ## in place ๋ฐฉ์์ผ๋ก ์ ๊ทผํด๋ณด๊ธฐ
54
-
55
- ๋ฌธ์ ๋ฅผ ์์ธํ ์ฝ์ด๋ณด๋ฉด [ in place] ( https://en.wikipedia.org/wiki/In-place_algorithm ) ๋ฐฉ์์ผ๋ก ํ๋ผ๊ณ ๋์ด์๋ค.
53
+ ## simple improvement
56
54
57
55
``` java
58
56
class Solution {
@@ -98,3 +96,78 @@ n == matrix[0].length
98
96
```
99
97
100
98
์๊ฐ๋ณต์ก๋๋ ` O(n * m) ` ๊ณต๊ฐ๋ณต์ก๋๋ ` O(n + m) ` ์ด๋ค. ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ๊ฐ์ ๋์๋ค.
99
+
100
+ ## in place ๋ฐฉ์์ผ๋ก ์ ๊ทผํด๋ณด๊ธฐ
101
+
102
+ ๋ฌธ์ ๋ฅผ ์์ธํ ์ฝ์ด๋ณด๋ฉด [ in place] ( https://en.wikipedia.org/wiki/In-place_algorithm ) ๋ฐฉ์์ผ๋ก ํ๋ผ๊ณ ๋์ด์๋ค.
103
+
104
+ ``` java
105
+ class Solution {
106
+ public void setZeroes (int [][] matrix ) {
107
+ boolean shouldUpdateFirstRow = false ;
108
+ boolean shouldUpdateFirstColumn = false ;
109
+
110
+ for (int i = 0 ; i < matrix. length; i++ ) {
111
+ if (matrix[i][0 ] == 0 ) {
112
+ shouldUpdateFirstColumn = true ;
113
+ break ;
114
+ }
115
+ }
116
+
117
+ for (int j = 0 ; j < matrix[0 ]. length; j++ ) {
118
+ if (matrix[0 ][j] == 0 ) {
119
+ shouldUpdateFirstRow = true ;
120
+ break ;
121
+ }
122
+ }
123
+
124
+ for (int i = 1 ; i < matrix. length; i++ ) {
125
+ for (int j = 1 ; j < matrix[0 ]. length; j++ ) {
126
+ if (matrix[i][j] == 0 ) {
127
+ matrix[i][0 ] = 0 ;
128
+ matrix[0 ][j] = 0 ;
129
+ }
130
+ }
131
+ }
132
+
133
+ // update row
134
+ for (int i = 1 ; i < matrix. length; i++ ) {
135
+ if (matrix[i][0 ] == 0 ) {
136
+ Arrays . fill(matrix[i], 0 );
137
+ }
138
+ }
139
+
140
+ // update column
141
+ for (int j = 1 ; j < matrix[0 ]. length; j++ ) {
142
+ if (matrix[0 ][j] == 0 ) {
143
+ for (int i = 0 ; i < matrix. length; i++ ) {
144
+ matrix[i][j] = 0 ;
145
+ }
146
+ }
147
+ }
148
+
149
+ // update first row if contains zero
150
+ if (shouldUpdateFirstRow) {
151
+ Arrays . fill(matrix[0 ], 0 );
152
+ }
153
+
154
+ // update first column if contains zero
155
+ if (shouldUpdateFirstColumn) {
156
+ for (int i = 0 ; i < matrix. length; i++ ) {
157
+ matrix[i][0 ] = 0 ;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ ```
163
+
164
+ #### TC, SC
165
+
166
+ ๋ฌธ์ ์์ m๊ณผ n์ด ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด ์๋ค.
167
+
168
+ ```
169
+ m == matrix.length
170
+ n == matrix[0].length
171
+ ```
172
+
173
+ ์๊ฐ๋ณต์ก๋๋ ` O(n * m) ` ๊ณต๊ฐ๋ณต์ก๋๋ ` O(1) ` ์ด๋ค. ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ํ ๋ฒ ๋ ๊ฐ์ ๋์๋ค.
0 commit comments