zoukankan      html  css  js  c++  java
  • Valid Sudoku

    package cn.edu.xidian.sselab.hashtable;

    import java.util.HashSet;
    import java.util.Set;

    /**
     *
     * @author zhiyong wang
     * title: Valid Sudoku
     * content:
     * 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.
     * Note:
     * A valid Sudoku board (partially filled) is not necessarily solvable.
     * Only the filled cells need to be validated.
     *
     */
    public class ValidSudoku {

        //参考了大牛的解法,自己拉下了每个小九方格也要进行比较,最大时间复杂度O(n^4)
        public boolean isValidSudoku(char[][] board){
            //先比较一横行或者一竖列
            for(int i=0;i<9;i++){
                if(!isValidSudokus(board, 0, i, 8, i)) return false;
                if(!isValidSudokus(board, i, 0, i, 8)) return false;
            }
            //然后比较每个小九方格
            for(int i=0;i<3;i++){
                for(int j=0;j<3;j++){
                    if(!isValidSudokus(board, i*3, j*3, i*3+2, j*3+2))
                        return false;
                }
            }
            return true;
        }
        
        //将比较的过程提炼了出来
        //这里有个index.add,如果存在返回false,不存在返回true
        public boolean isValidSudokus(char[][] board, int x1, int y1, int x2, int y2){        
            Set index = new HashSet();
            for(int i=x1;i<=x2;i++){
                for (int j=y1;j<=y2;j++){
                    if(board[i][j] != '.'){
                        if(!index.add(board[i][j]))
                            return false;
                    }
                }
            }
            return true;
        }
        
    }

  • 相关阅读:
    Jenkins中构建Testcomplete项目的方法介绍
    抖音批量,批量运营抖音_不要迷恋我_【单月抖音变现7000万】教程
    java 读取 excel 表格内容
    .NET Core 2.1中的分层编译(预览)
    Windows10上使用Linux子系统(WSL)
    swagger上传文件并支持jwt认证
    .NET微服务 容器化.NET应用架构指南(支持.NET Core2)
    用C#编写Linux守护进程
    安装mysql后运行.net程序出错
    2018 你好
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5154856.html
Copyright © 2011-2022 走看看