• 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 array
    46      * @return
    47      */
    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     }
  • 相关阅读:
    42 【docker】run命令
    41 【docker】初识
    37 【kubernetes】搭建dashboard
    36 【kubernetes】coredns
    34 【kubernetes】安装手册
    35 【kubernetes】configMap
    33 【kebernetes】一个错误的解决方案
    25 【python入门指南】如何编写测试代码
    26【python】sprintf风格的字符串
    24 【python入门指南】class
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4095352.html
Copyright © 2020-2023  润新知