JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

use three 2-d matrix to store if any column, row or block has more than one specific value.

 1 public class Solution {
 2     public boolean isValidSudoku(char[][] board) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         boolean[][] rows = new boolean[9][9];
 6         boolean[][] cols = new boolean[9][9];
 7         boolean[][] blocks = new boolean[9][9];
 8 
 9         for (int i = 0; i < 9; ++i) {
10             for (int j = 0; j < 9; ++j) {
11                 if (board[i][j] == '.') continue;
12                 int c = board[i][j] - '1';
13                 if (rows[i][c] || cols[j][c] || blocks[i - i % 3 + j / 3][c])
14                     return false;
15                 rows[i][c] = cols[j][c] = blocks[i - i % 3 + j / 3][c] = true;
16             }
17         }
18         return true;
19     }
20 }

 

posted on 2013-11-05 16:02  JasonChang  阅读(158)  评论(0编辑  收藏  举报