/* * 题目:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) * 算法:遍历一遍二维数组,在遍历过程中记录每个值在行、列、单元格中出现的次数。 * * * */ package cn.wanggeng; public class ValidSudoku { public boolean isValidSudoku(char[][] board) { int[][] rows = new int[9][9]; int[][] columns = new int[9][9]; int[][] parts = new int[9][9]; for(int i = 0; i < 9; i++){ for(int j = 0; j < 9; j++){ int temp = board[i][j] - '0'; if(temp >= 1 && temp <= 9){ rows[i][temp-1]++; columns[j][temp-1]++; parts[i/3*3+j/3][temp-1]++; if(rows[i][temp-1] > 1 || columns[j][temp-1] > 1 || parts[i/3*3+j/3][temp-1] > 1){ return false; } } } } return true; } }