Java for LeetCode 036 Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
解题思路:
传说中的数独(九宫格)问题,老实遍历三个规则即可:
JAVA实现:
static public boolean isValidSudoku(char[][] board) { for (int i = 0; i < board.length; i++) { HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>(); for (int j = 0; j < board[0].length; j++) { if (board[i][j] != '.') { if (hashmap.containsKey(board[i][j])) return false; hashmap.put(board[i][j], 1); } } } for (int j = 0; j < board[0].length; j++) { HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>(); for (int i = 0; i < board.length; i++) { if (board[i][j] != '.') { if (hashmap.containsKey(board[i][j])) return false; hashmap.put(board[i][j], 1); } } } for (int i = 0; i < board.length; i += 3){ for (int j = 0; j < board[0].length; j += 3){ HashMap<Character, Integer> hashmap = new HashMap<Character, Integer>(); for (int k = 0; k < 9; k++) { if (board[i + k / 3][j + k % 3] != '.') { if (hashmap.containsKey(board[i + k / 3][j + k % 3])) return false; hashmap.put(board[i + k / 3][j + k % 3], 1); } } } } return true; }