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

devtools/2024/11/18 16:36: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;}
}

运行结果

20ad2bfec8634b8aa82e372158039842.jpg


http://www.ppmy.cn/devtools/104867.html

相关文章

VLAN原理和配置

VLAN技术可以将一个物理局域网在逻辑上划分成多个广播域&#xff0c;也就是多个VLAN。VLAN技术部署在数据链路层&#xff0c;用于隔离二层流量。同一个VLAN内的主机共享同一个广播域&#xff0c;它们之间可以直接进行二层通信。 VLAN标签长4个字节&#xff0c;直接添加在以太网…

【JVM】垃圾收集器与GC日志(一)

垃圾收集器与GC日志 串行、并行、并发 串行:一个GC线程运行 并行(Parallel):指多条垃圾收集线程并行工作&#xff0c;但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的&#xff0c;可能会交替执行)&#xff0c;用户程序…

数据库性能测试2:内存数据库

继上一篇 数据库性能测试&#xff1a;Mysql、Sqlite、Duckdb 之后&#xff0c;做了一下内存数据库的性能测试&#xff0c;这里主要比较的是 Sqlite、Duckdb以及我这边使用容器实现的一个简单内存数据库&#xff0c;因为Sqlite和Duckdb都支持内存数据库模式&#xff0c;于是打算…

Linux 设备驱动程序

1、vscode 编写 vscode软件设置头文件路径的方法 .vscode/c_cpp_properties.json 中文件如下&#xff1a; {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/usr/src/linux-header…

企业微信dll,最新版dll

1.基础信息获取,如登录用户信息、联系人列表、群组列表等。 2.联系人操作,如修改备注、添加删除联系人等。 3.群操作,如创建群聊、邀请添加成员、修改群信息等。 4.消息发送,支持文本、图片、文件、位置等不同类型消息的发送。 5.支持通过DLL调用实现自动化功能,如机器人自动回…

mysql 导入excel文件 navicate

需求&#xff1a; 需要将表格的数据&#xff0c;导入到mysql数据库&#xff0c;如果存在就更新&#xff0c;如果不存在就进行追加。 处理&#xff1a; 这种就用navicate进行操作。 excle表格&#xff1a; 平台流水号用户姓名来电号码联系电话通讯地址电子邮箱闽-20231221000…

AR 眼镜之-系统通知定制(通知弹窗)-实现方案

目录 &#x1f4c2; 前言 AR 眼镜系统版本 系统通知定制 1. &#x1f531; 技术方案 1.1 技术方案概述 1.2 实现方案 1&#xff09;实现系统通知的监听 2&#xff09;系统通知显示&#xff1a;通知弹窗 2. &#x1f4a0; 实现系统通知的监听 2.1 继承 NotificationLi…

Python GraphQL 库之graphene使用详解

概要 随着 Web 技术的发展,GraphQL 已成为 REST 的一种强有力替代方案,为客户端提供了更灵活的数据查询方式。Graphene 是一个用于构建 GraphQL API 的 Python 库,它使得开发者可以轻松地将复杂的数据模型暴露为 GraphQL API。通过 Graphene,开发者可以利用 Python 的面向…