当前位置: 首页 > article >正文

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

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

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

运行结果

20ad2bfec8634b8aa82e372158039842.jpg


http://www.kler.cn/a/281918.html

相关文章:

  • CC工具箱使用指南:【CAD导出界址点Excel】
  • Ascend C算子性能优化实用技巧05——API使用优化
  • 学者观察 | 元计算、人工智能和Web 3.0——山东大学教授成秀珍
  • WPF的基础控件详解
  • Quartus+Nios II for eclipse问题合集
  • WebAssembly在桌面级应用开发中的探索与实践
  • Vue 3 CLI TypeScript 项目搭建全攻略
  • 【LINUX】ifconfig -a查看到的发送、接收包数和字数字节数在驱动层代码大概位置
  • 深度学习--自监督学习
  • Python循环结束语句 break语句 continue语句
  • 关于el-table的扩展表格expand
  • spring boot 集成es使用
  • day37动态规划+三.Github链接本地仓库
  • [英语单词] feedback
  • Qt QToolButton 和 QPushButton的区别和联系
  • 网络安全技术新趋势:如何应对不断演变的威胁?
  • 【STM32】FMC
  • 设计模式-结构性模式
  • 【mysql】mysql之数据操作语言(insert、delete、update)
  • Selenium的四种部署方式详解
  • redis面试(二十五)CountDownLatch实现
  • PyTorch概述
  • 未来工作场所:知识中台与AI的融合
  • k8s集群环境搭建(一主二从--kubeadm安装)
  • 用ESP32做一个可爱的无用机器人
  • python之多线程和多进程以及threading和multiprocessing模块