首页 > 代码库 > leetcode Sudoku java
leetcode Sudoku java
package com.sogou.hadoop.test;public class Sudoku {
/**
验证该值是否合法
*/ public boolean isValidSudoku(char[][] board,int x,int y){ int row,col; //same value in the same column for(row=0;row<9;row++){ if((x!=row)&&(board[row][y]==board[x][y])){ return false; } } // same value in the same row for(col=0;col<9;col++){ if((y!=col)&&board[x][col]==board[x][y]) return false; } // same value in the 3*3 block it belong to for(row=(x/3)*3;row<(x/3+1)*3;row++){ for(col=(y/3)*3;col<(y/3+1)*3;col++){ if((x!=row)&&y!=col&&board[row][col]==board[x][y]) return false; } } return true; }
//递归调用该方法,没有检测已经填写的数字而是从头开始 public boolean solveSudoku(char[][] board){ for(int row=0;row<9;row++){ for(int col=0;col<9;col++){ if(‘.‘==board[row][col]){ for(int i=1;i<=9;i++){ board[row][col]=(char) (‘0‘+i); if(isValidSudoku(board, row, col)){ if(solveSudoku(board)) return true; } board[row][col]=‘.‘; } return false; } } } return true; } public static void main(String[] args) { }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。