Leecode36 valid-sudoku

题目描述

根据数独的规则Sudoku Puzzles - The Rules.判断给出的局面是不是一个符合规则的数独局面
数独盘面可以被部分填写,空的位置用字符'.'.表示


在这里插入图片描述

这是一个部分填写的符合规则的数独局面

分析

  • 先检查每一行是否有重复的数字。
  • 再检查每列。
  • 最后检查每一个3*3矩阵。

java 代码

public class Solution {
    public boolean isValidSudoku(char[][] board) {
        if(board == null || board.length != 9 || board[0].length != 9){return false;}        
        //判断所有行
        for(int row = 0; row < 9; row ++){
            //对于某一行 要有一个判断用的数组
            boolean visited [] = new boolean[9];
            for(int i = 0;i < 9;i++){
                if(board[row][i] != '.'){
                    int temp = board[row][i] - '1';
                    if(visited[temp] == false){
                        visited[temp] = true;
                    }else{
                        return false;
                    }
                }
            }
        }        
         //判断所有列
        for(int col = 0; col < 9; col ++){
            //对于某一列 要有一个判断用的数组
            boolean visited [] = new boolean[9];
            for(int i = 0;i < 9;i++){
                if(board[i][col] != '.'){
                    int temp = board[i][col] - '1';
                    if(visited[temp] == false){
                        visited[temp] = true;
                    }else{
                        return false;
                    }
                }
            }
        }        
        //判断矩阵
        int range [] = {0,3,6};
        for(int rowOff :range){
             for(int colOff :range){
                 boolean visited [] = new boolean[9];
                for(int i = 0; i < 3; i++){
                    for(int j = 0; j < 3; j++){
                        if(board[rowOff + i][colOff + j] != '.'){                            
                            int temp = board[rowOff + i][colOff + j] - '1';
                            if(visited[temp] == false){
                                visited[temp] = true;
                            }else{
                                return false;
                            }
                        }                        
                    }
                }
            }
        }        
        return true;        
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容