zoukankan      html  css  js  c++  java
  • [leedcode 36] 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 '.'.

    A partially filled sudoku which is valid.

    public class Solution {
        public boolean isValidSudoku(char[][] board) {
            //本题思路:先每行每列判断是否有重复的数,此题借助arraylist,注意clear,contains,add等方法,当board中的元素不为‘.’时,才进行判断
            //判断完行和列,判断每个3*3的块。注意遍历的方式,四个for循环
            int len=board.length;
            List<Character> row=new ArrayList<Character>();
            List<Character> col=new ArrayList<Character>();
            for(int i=0;i<len;i++){
                    row.clear();
                    col.clear();
                for(int j=0;j<len;j++){
                    
                    char r=board[i][j];
                    if(r!='.'){
                        if(row.contains(r))
                               return false;
                        else{
                            row.add(r);
                        }
                    }
                    char c=board[j][i];
                     if(c!='.'){
                        if(col.contains(c))
                               return false;
                        else{
                            col.add(c);
                        }
                    }
        
                }
            }
            ArrayList<Character> block=new ArrayList<Character>();
            for(int k=0;k<len;k=k+3){//k代表块的行,s代表块的列。每个块再进行遍历
                for(int s=0;s<len;s=s+3){
                    block.clear();
                    for(int i=0;i<3;i++){
                        for(int j=0;j<3;j++){
                          char b=board[i+k][j+s];
                            if(b!='.'){
                                if(block.contains(b))
                                   return false;
                                else{
                                    block.add(b);
                                }
                            }  
                        }
                    }
                }
            }
            
            
          return true;  
            
        }
    }
  • 相关阅读:
    C#集合类型——Array、ArrayList、List 之浅谈
    C#反射(二)
    ASP.Net内置对象之网页之间传参(二)
    ASP.Net内置对象之网页之间传参(一)
    MyEclipse中设置智能提示
    常用Java片段
    ue中替换行
    正确的计算耗时
    JAVA之GUI编程ACTION事件
    JAVA之GUI编程窗体事件
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4634465.html
Copyright © 2011-2022 走看看