File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 1+ class  Solution  {
2+     private  boolean  ok ;
3+     private  char [][] board ;
4+     private  List <Integer > t  = new  ArrayList <>();
5+     private  boolean [][] row  = new  boolean [9 ][9 ];
6+     private  boolean [][] col  = new  boolean [9 ][9 ];
7+     private  boolean [][][] block  = new  boolean [3 ][3 ][9 ];
8+ 
9+     public  void  solveSudoku (char [][] board ) {
10+         this .board  = board ;
11+         for  (int  i  = 0 ; i  < 9 ; ++i ) {
12+             for  (int  j  = 0 ; j  < 9 ; ++j ) {
13+                 if  (board [i ][j ] == '.' ) {
14+                     t .add (i  * 9  + j );
15+                 } else  {
16+                     int  v  = board [i ][j ] - '1' ;
17+                     row [i ][v ] = col [j ][v ] = block [i  / 3 ][j  / 3 ][v ] = true ;
18+                 }
19+             }
20+         }
21+         dfs (0 );
22+     }
23+ 
24+     private  void  dfs (int  k ) {
25+         if  (k  == t .size ()) {
26+             ok  = true ;
27+             return ;
28+         }
29+         int  i  = t .get (k ) / 9 , j  = t .get (k ) % 9 ;
30+         for  (int  v  = 0 ; v  < 9 ; ++v ) {
31+             if  (!row [i ][v ] && !col [j ][v ] && !block [i  / 3 ][j  / 3 ][v ]) {
32+                 row [i ][v ] = col [j ][v ] = block [i  / 3 ][j  / 3 ][v ] = true ;
33+                 board [i ][j ] = (char ) (v  + '1' );
34+                 dfs (k  + 1 );
35+                 row [i ][v ] = col [j ][v ] = block [i  / 3 ][j  / 3 ][v ] = false ;
36+             }
37+             if  (ok ) {
38+                 return ;
39+             }
40+         }
41+     }
42+ }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments