@@ -43,69 +43,61 @@ Could you devise a constant space solution?
4343 * @param {number[][] } matrix
4444 * @return {void } Do not return anything, modify matrix in-place instead.
4545 */
46- var setZeroes = function ( matrix ) {
47- if ( matrix . length === 0 )
48- return ;
49-
46+ var setZeroes = function ( matrix ) {
47+ if ( matrix . length === 0 ) return ;
48+
5049 var pivotRow = - 1 ;
5150 var pivotCol = - 1 ;
5251 var iterRow = 0 ;
5352 var iterCol = 0 ;
5453 var found = false ;
55-
54+
5655 // Find a pivot
57- while ( ! found && iterRow < matrix . length ) {
56+ while ( ! found && iterRow < matrix . length ) {
5857 iterCol = 0 ;
59- while ( ! found && iterCol < matrix [ 0 ] . length ) {
60- if ( matrix [ iterRow ] [ iterCol ] === 0 ) {
61- found = true
58+ while ( ! found && iterCol < matrix [ 0 ] . length ) {
59+ if ( matrix [ iterRow ] [ iterCol ] === 0 ) {
60+ found = true ;
6261 pivotRow = iterRow ;
6362 pivotCol = iterCol ;
6463 }
6564 iterCol ++ ;
6665 }
6766 iterRow ++ ;
6867 }
69-
70- if ( ! found )
71- return ;
72-
68+
69+ if ( ! found ) return ;
70+
7371 // Update the Column value
74- for ( var i = 0 ; i < matrix . length ; i ++ ) {
75- if ( i == pivotRow )
76- continue
77- for ( var j = 0 ; j < matrix [ 0 ] . length ; j ++ ) {
78- if ( j == pivotCol )
79- continue ;
80- if ( matrix [ i ] [ j ] === 0 ) {
72+ for ( var i = 0 ; i < matrix . length ; i ++ ) {
73+ if ( i == pivotRow ) continue ;
74+ for ( var j = 0 ; j < matrix [ 0 ] . length ; j ++ ) {
75+ if ( j == pivotCol ) continue ;
76+ if ( matrix [ i ] [ j ] === 0 ) {
8177 matrix [ i ] [ pivotCol ] = 0 ;
8278 matrix [ pivotRow ] [ j ] = 0 ;
8379 }
8480 }
8581 }
86-
87- for ( var i = 0 ; i < matrix . length ; i ++ )
88- if ( matrix [ i ] [ pivotCol ] === 0 && i !== pivotRow )
89- fillRow ( matrix , i ) ;
90-
91- for ( var i = 0 ; i < matrix [ 0 ] . length ; i ++ )
92- if ( matrix [ pivotRow ] [ i ] === 0 && i !== pivotCol )
93- fillCol ( matrix , i ) ;
94-
82+
83+ for ( var i = 0 ; i < matrix . length ; i ++ )
84+ if ( matrix [ i ] [ pivotCol ] === 0 && i !== pivotRow ) fillRow ( matrix , i ) ;
85+
86+ for ( var i = 0 ; i < matrix [ 0 ] . length ; i ++ )
87+ if ( matrix [ pivotRow ] [ i ] === 0 && i !== pivotCol ) fillCol ( matrix , i ) ;
88+
9589 fillCol ( matrix , pivotCol ) ;
9690 fillRow ( matrix , pivotRow ) ;
9791
9892 return matrix ;
9993} ;
10094
101- var fillRow = function ( matrix , row ) {
102- for ( var i = 0 ; i < matrix [ 0 ] . length ; i ++ )
103- matrix [ row ] [ i ] = 0 ;
104- }
95+ var fillRow = function ( matrix , row ) {
96+ for ( var i = 0 ; i < matrix [ 0 ] . length ; i ++ ) matrix [ row ] [ i ] = 0 ;
97+ } ;
10598
106- var fillCol = function ( matrix , col ) {
107- for ( var i = 0 ; i < matrix . length ; i ++ )
108- matrix [ i ] [ col ] = 0 ;
109- }
99+ var fillCol = function ( matrix , col ) {
100+ for ( var i = 0 ; i < matrix . length ; i ++ ) matrix [ i ] [ col ] = 0 ;
101+ } ;
110102
111103module . exports . setZeroes = setZeroes ;
0 commit comments