zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    Feature的开发和部署
    MOSS 2007应用如何修改上传文件大小及类型的限制
    学习Ajax的优秀网站
    Office SharePoint 权限开发
    Asp.net操作Excel汇总
    如何取到MOSS列表中item的链接
    解决MOSS、SharePoint的未知错误
    Ajax 之 XMLHttpRequest
    C#中从资源文件里加载文件
    linux 技巧:使用 screen 管理你的远程会话 [linux]
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4095352.html
Copyright © 2011-2022 走看看