/* * 36. Valid Sudoku * 12.10 by MIngyang * 这里有一个关于HashSet的方法,就是add,如果没有可以将之add进去,如果有的话会返回false */ public boolean isValidSudoku(char[][] board) { // rule1, column for(int i=0; i<board[0].length; i++){ HashSet<Character> test = new HashSet<Character>(); for(int j=0; j<board.length; j++){ if(board[j][i]!='.' && !test.add(board[j][i])) return false; } } // rule2, row for(int i=0; i<board.length; i++){ HashSet<Character> test = new HashSet<Character>(); for(int j=0; j<board[0].length; j++){ if(board[i][j]!='.' && !test.add(board[i][j])) return false; } } // rule3, sub-box------------注意一下表格的block的index表示,不是所有的都要检查,只检查那么几个 for(int i=0; i<3; i++){ for(int j=0; j<3; j++){// for each sub-box HashSet<Character> test = new HashSet<Character>(); for(int m=i*3; m<i*3+3; m++){//row for(int n=j*3; n<j*3+3; n++){//column if(board[m][n]!='.' && !test.add(board[m][n])) return false; } } } } return true; }