zoukankan      html  css  js  c++  java
  • [Leetcode 24] 35 Valid Sudoku

    Problem:

    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 '.'.

    A partially filled sudoku which is valid.

    Analysis:

    Simulation problem, the nice part here is use a same function for three different kinds of test as showed in code.

    Code:

     1 public class Solution {
     2     public boolean isValidSudoku(char[][] board) {
     3         // Start typing your Java solution below
     4         // DO NOT write main() function
     5         for (int i=0; i<9; ++i) {//judge row
     6             if (!judge(board, i, 0, 1, 9))
     7                 return false;
     8         }
     9         
    10         for (int j=0; j<9; ++j) {//judge column
    11             if (!judge(board, 0, j, 9, 1))
    12                 return false;
    13         }
    14         
    15         for (int i=0; i<3; ++i) {//judge block
    16             for (int j=0; j<3; ++j) {
    17                 if (!judge(board, i*3, j*3, 3, 3))
    18                     return false;
    19             }
    20         }
    21         
    22         return true;
    23     }
    24     
    25     private boolean judge(char[][] board, int r, int c, int rl, int cl) {
    26         int[] hashT = {0,0,0,0,0,0,0,0,0};
    27         
    28         for (int i=r; i<r+rl; ++i) {
    29             for (int j=c; j<c+cl; ++j) {
    30                 if (board[i][j] != '.') {
    31                     int idx = board[i][j]-'0'-1;
    32                     
    33                     if (hashT[idx] != 0) {
    34                         return false;
    35                     } else {
    36                         hashT[idx] ++;
    37                     }
    38                 }
    39             }
    40         }
    41         
    42         return true;
    43     }
    44 }
    View Code

    Attention:

    Sometimes it may have Time Limit Exceeded error....

  • 相关阅读:
    Tomcat架构解析(五)-----Tomcat的类加载机制
    session与cookie
    freemarker常用标签解释遍历
    freemarker常用标签解释三
    freemarker常用标签解释二
    freemarker常用标签解释
    禁止浏览器自动填充
    使用cookie实现自动登录
    长连接和短连接
    filter防止xxs攻击
  • 原文地址:https://www.cnblogs.com/freeneng/p/3086524.html
Copyright © 2011-2022 走看看