判断数独是否合法

原创 2016年05月31日 18:13:46

请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。

样例

下列就是一个合法数独的样例。

Valid Sudoku

class Solution {
    /**
      * @param board: the board
        @return: wether the Sudoku is valid
      */
    public boolean isValidSudoku(char[][] board) {
        //使用一个boolean型数组表示1~9的数字有没有出现过
        //保证 行、列、方框内没有重复数字
        boolean[] visited = new boolean[9];
        //行
        for(int i = 0 ; i < 9 ; i++){
            Arrays.fill(visited,false); //填充visited数组中的每个元素都是false
            for(int j = 0 ; j < 9 ; j++){
                if(!visit(visited,board[i][j])){
                    return false;
                }
            }
        }
        //列
        for(int i = 0 ; i < 9 ; i++){
            Arrays.fill(visited,false); //填充visited数组中的每个元素都是false
            for(int j = 0 ; j < 9 ; j++){
                if(!visit(visited,board[j][i])){
                    return false;
                }
            }
        }
        //方框!!!注意分析清楚
        for(int i = 0 ; i < 7 ; i += 3){
            for(int j = 0 ; j < 7 ; j += 3){
                Arrays.fill(visited,false);
                for(int k = 0 ; k < 9 ; k++){
                    if(!visit(visited,board[i + k/3][j + k%3])){
                         return false;
                }
                }
            }
        }
        return true;
    }
    public boolean visit(boolean[] visited , char temp){
        if(temp == '.'){
            return true;
        }
        int num = temp - '0';
        if(num < 0 || num > 9 || visited[num-1]){
            return false;
        }
        visited[num-1] = true;//该合理数字未出现
        return true;
    }
};

[leetcode]Valid Sudoku(判断有效数独 C语言实现)

Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku bo...
  • sanmao0816
  • sanmao0816
  • 2015年03月30日 21:55
  • 1287

LintCode Valid Sudoku 判断数独是否合法

请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 样例 下列就是一个合法数独的样例。 Determine whether a Sudoku is valid....
  • wutingyehe
  • wutingyehe
  • 2015年06月24日 22:21
  • 1245

PHP判断输入数据是否合法常用的类

  • zuoan2008
  • zuoan2008
  • 2015年04月11日 14:34
  • 1421

LintCode Valid Sudoku 判断数独是否合法

请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 样例 下列就是一个合法数独的样例。 Determine whether a Sudoku is valid....
  • wutingyehe
  • wutingyehe
  • 2015年06月24日 22:21
  • 1245

389 - 判断数独是否合法

5.5 很神奇的使用了map数组,感觉自己的路子简直是有点儿野。 map数组的定义方式为: HashMap[][] map2 = new HashMap[2][9]; for(i...
  • Missbubu
  • Missbubu
  • 2017年05月05日 16:27
  • 102

容易 判断数独是否合法

容易 判断数独是否合法 27% 通过 请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。 您在真实的面试中是否遇到过这个题?  Yes 样例 下列就是一...
  • witnessai1
  • witnessai1
  • 2015年10月17日 18:00
  • 2528

389.Valid Sudoku-判断数独是否合法(容易题)

判断数独是否合法 题目请判定一个数独是否有效。 该数独可能只填充了部分数字,其中缺少的数字用 . 表示。注意事项 一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。 说...
  • Tri_Color_Flag
  • Tri_Color_Flag
  • 2016年09月13日 23:00
  • 197

Leetcode:36.Valid Sudoku 初始化数独数组是否合法判断

Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be p...
  • dashenxueba
  • dashenxueba
  • 2017年11月06日 11:04
  • 77

Valid Sudoku 当前状态是否为合法的数独状态

注意这里只是判断数独状态是否为合法的,而不需要判断是否已经求解完毕。 根据数独的定义,我们需要做3步:1.检查每一行有没有重复的数;2.检查每一个列有没有重复的数;3.检查每一个内部小格有没有重复的...
  • qiexingqieying
  • qiexingqieying
  • 2016年06月22日 16:12
  • 215

Valid Sudoku 判断数独是否可解

题目: 点击打开链接 解答: 只需要判断现在已有的元素shifo
  • skyoceanlover
  • skyoceanlover
  • 2014年08月26日 00:28
  • 327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:判断数独是否合法
举报原因:
原因补充:

(最多只允许输入30个字)