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;
        }
        
    }

  • 相关阅读:
    Win10设置文件夹权限报错-(提示:无法枚举容器中的对象 访问被拒绝)
    判断上传文件是否是图片文件
    PB调用C#编写的Dll类库
    C#txt文件创建并写入信息
    三十分钟学完Vue
    html增加锚点定位
    Asp.Net WebApi 调试利器“单元测试”
    ios端 返回上一级后 卡在正在加载中处理方式
    [转]如何为图片添加热点链接?(map + area)
    JS获取当前时间并格式化"yyyy-MM-dd HH:mm:ss"
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5154856.html
Copyright © 2011-2022 走看看