Leetcode面试经典150题-36.有效数独

解法都在代码里,不懂就留言或者私信,比第一题稍微难点

java 复制代码
class Solution {
    public static boolean isValidSudoku(char[][] board) {
        /**rowExists[i][j]代表第i行是否存在数据j+1*/
        boolean[][] rowExists = new boolean[9][9];
        /**rowExists[i][j]代表第i列是否存在数据j+1*/
        boolean[][] colExists = new boolean[9][9];
        /**rowExists[i][j]代表第i个格子是否存在数据j+1*/
        boolean[][] bucketExists = new boolean[9][9];
        for(int i = 0; i < board.length; i++) {
            for(int j = 0; j < board[i].length; j++) {
                if(board[i][j] == '.') {
                    continue;
                }
                /**如果这个行已经存在这个数字了,返回false*/
                if(rowExists[i][board[i][j] - '1']) {
                    return false;
                }
                /**如果原来没有,现在这个数就是,有了记录一下*/
                rowExists[i][board[i][j]-'1'] = true;
                /**如果这个列已经存在这个数字了,返回false*/
                if(colExists[j][board[i][j]-'1']) {
                    return false;
                }
                /**如果原来没有,现在这个数就是,有了记录一下*/
                colExists[j][board[i][j]-'1'] = true;
                /**计算当前应该在哪个桶,这里注意bucketnum的计算*/
                int bucketNum = j / 3 + (i / 3)*3;
                if(bucketExists[bucketNum][board[i][j]-'1']) {
                    return false;
                }
                bucketExists[bucketNum][board[i][j]-'1'] = true;
            }
        }
        return true;
    }
}

运行结果

相关推荐
谁是听故事的人6 小时前
vue前端面试指南
前端·vue.js·面试
千寻girling6 小时前
面试官: “ 请你讲一下 package.json 文件 ? ”
前端·javascript·面试
weixin_478433326 小时前
iluwatar 设计模式
java·开发语言·设计模式
花卷HJ6 小时前
Android 多媒体文件工具类封装(MediaFileUtils)
android·java
モンキー・D・小菜鸡儿6 小时前
Android 自定义粒子连线动画视图实现:打造炫酷背景效果
android·java
Java天梯之路6 小时前
# Spring Boot 钩子全集实战(四):`SpringApplicationRunListener.environmentPrepared()` 详解
java·spring·面试
i757_w6 小时前
IDEA快捷键被占用
java·ide·intellij-idea
白鸽(二般)6 小时前
Spring 的配置文件没有小绿叶
java·后端·spring
zhangkaixuan4566 小时前
Paimon Action Jar 实现机制分析
java·大数据·flink·paimon·datalake
only-qi6 小时前
深入理解MySQL中的MVCC:多版本并发控制的实现原理
java·数据库·mysql