首页 > 代码库 > Valid Sudoku
Valid Sudoku
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 ‘.‘
.
这里我用定义来做的,代码有点长
先看所有行是否有效
所有列是否有效
所有小9宫格是否有效
1 public class Solution { 2 public boolean isValidSudoku(char[][] board) { 3 boolean isValid = true; 4 //所有行有效 5 for(int i = 0; i < 9;i++){ 6 if(!isValid(board[i])){ 7 isValid = false; 8 break; 9 }10 }11 //所有列12 for(int i = 0; i < 9 && isValid; i++){13 char array[] = new char[9];14 for(int j = 0; j < 9; j++){15 array[j] = board[j][i];16 }17 if(!isValid(array)){18 isValid = false;19 break;20 }21 }22 //所有小9宫格23 for(int i = 0; i < 9 && isValid;i = i + 3){24 for(int j = 0; j < 9;j = j + 3){25 char array[] = new char[9];26 int x = 0;27 for(int k = i; k < i + 3; k++){28 for(int p = j; p < j + 3;p++){29 array[x++] = board[k][p];30 }31 }32 if(!isValid(array)){33 isValid = false;34 break;35 }36 }37 }38 if(isValid)39 return true;40 return false;41 }42 43 /**44 * 判断数组是否有效45 * @param array46 * @return47 */48 public boolean isValid(char []array){49 boolean isValid = true;50 boolean one2Nine[] = new boolean[10];51 //System.out.println(one2Nine[0]);52 for(int i = 0; i < 9;i++){53 if(‘.‘ != array[i]){54 if(!one2Nine[array[i] - ‘0‘]){55 one2Nine[array[i] - ‘0‘] = true;56 }else{57 isValid = false;58 break;59 }60 }61 }62 if(isValid)63 return true;64 else 65 return false;66 }
Valid Sudoku
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。