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

LeetCode(36)有效的数独 ⭐⭐

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)

注意:

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 空白格用 '.' 表示。

思路一:普通人暴力法,使用哈希表

class Solution {public boolean isValidSudoku(char[][] board) {int rowSize = board.length;int cellSize = board[0].length;Set<Character> set = new HashSet<>();for(int i=0; i<rowSize; i++) {set.clear();for(int j=0; j<cellSize; j++) {char ele = board[i][j];if('.' != ele) {if(set.contains(ele)) {return false;}set.add(ele);}}}for(int i=0; i<cellSize; i++) {set.clear();for(int j=0; j<rowSize; j++) {char ele = board[j][i];if('.' != ele) {if(set.contains(ele)) {return false;}set.add(ele);}}}for(int i=0; i<3; i++) {for(int j=0; j<3; j++) {set.clear();for(int k=i*3;k<(i+1)*3;k++) {for(int q=j*3;q<(j+1)*3;q++) {char ele = board[k][q];if('.' != ele) {if(set.contains(ele)) {return false;}set.add(ele);}}}}}return true;}
}

思路二:数学方法

class Solution {public boolean isValidSudoku(char[][] board) {int[][] rows = new int[9][9];int[][] columns = new int[9][9];int[][][] subboxes = new int[3][3][9];for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {char c = board[i][j];if (c != '.') {int index = c - '0' - 1;rows[i][index]++;columns[j][index]++;subboxes[i / 3][j / 3][index]++;if (rows[i][index] > 1 || columns[j][index] > 1 || subboxes[i / 3][j / 3][index] > 1) {return false;}}}}return true;}
}

 

相关文章:

LeetCode(36)有效的数独 ⭐⭐

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 注…...

用LCD显示字符‘A‘

#include<reg51.h> //包含单片机寄存器的头文件 #include<intrins.h> //包含_nop_()函数定义的头文件 sbit RSP2^0; //寄存器选择位&#xff0c;将RS位定义为P2.0引脚 sbit RWP2^1; //读写选择位&#xff0c;将RW位定义为P2.1引脚 sbit EP2^2; //使能…...

Zookeeper相关问题及答案(2024)

1、ZooKeeper是什么&#xff1f;它的主要用途是什么&#xff1f; ZooKeeper 是一个由 Apache 预先开发和维护的开源服务器&#xff0c;用于协调分布式应用程序。它是一个集中式服务&#xff0c;为分布式应用提供一致性保障&#xff0c;配置管理&#xff0c;命名&#xff0c;同…...

1.大数据概述

目录 概述hadoophadoop 模块hadoop 发行版apache社区版本CDP(CDHHDP)其它云产商框架选择 hadoop 安装 结束 概述 先了解几个常用的网站 apache 官网hadoop 官网hadoop githubhttps://github.com/apache/xxx [https://github.com/apache/spark (example)] hadoop hadoop 模块…...

NGUI基础-Widget

目录 Widget是什么 Widget组件包含的属性 Pivot Depth Size snap Aspect Free Based on Width Based on Height Widget是什么 在Unity UI系统中&#xff0c;"Widget"是指UI元素的基类&#xff0c;它为UI元素提供了位置、大小和锚点等基本属性。通过使用&qu…...

SpringBoot集成沙箱支付

前言 支付宝沙箱支付&#xff08;Alipay Sandbox Payment&#xff09;是支付宝提供的一个模拟支付环境&#xff0c;用于开发和测试支付宝支付功能的开发者工具。在真实的支付宝环境中进行支付开发和测试可能涉及真实资金和真实用户账户&#xff0c;而沙箱环境则提供了一个安全…...

BUUCTF--gyctf_2020_borrowstack1

这是一题栈迁移的题目&#xff0c;先看看保护&#xff1a; 黑盒测试&#xff1a; 用户可输入两次内容&#xff0c;接着看看IDA中具体程序流程&#xff1a; 我们看到溢出内容只有0x10的空间给我们布局&#xff0c;这显然是不足以我们布置rop的。因此肯定就是栈迁移了。迁到什么地…...

图像分割-Grabcut法(C#)

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的VB版本请访问&#xff1a;图像分割-Grabcut法-CSDN博客 GrabCut是一种基于图像分割的技术&#xff0c;它可以用于将图像中的…...

C# WPF上位机开发(Web API联调)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多时候&#xff0c;客户需要开发的不仅仅是一个上位机系统&#xff0c;它还有其他很多配套的系统或设备&#xff0c;比如物流小车、立库、数字孪…...

c语言:用结构体求平均分|练习题

一、题目 用c语言的结构体&#xff0c;求4位学生成绩的平均分 如图&#xff1a; 二、代码截图【带注释】 三、源代码【带注释】 #include <stdio.h> float aver();//声明平均分函数 void printScore();//声明打印函数 //设置结构体&#xff0c; struct student { …...

echarts 仪表盘进度条 相关配置

option {series: [{type: gauge,min: 0,//最大值max: 100, //最小值startAngle: 200,//仪表盘起始角度。圆心 正右手侧为0度&#xff0c;正上方为90度&#xff0c;正左手侧为180度。endAngle: -20,//仪表盘结束角度splitNumber: 100, //仪表盘刻度的分割段数itemStyle: {color…...

Simpy:Python之离散时间序列仿真

Simpy&#xff1a;Python之离散时间序列仿真 文章目录 Simpy&#xff1a;Python之离散时间序列仿真简介基本使用语法简单案例在数据中心中的应用案例 简介 下载地址网站&#xff1a; https://pypi.org/project/simpy/ 有关教程网站&#xff1a; https://simpy.readthedocs.…...

连接GaussDB(DWS)报错:Invalid or unsupported by client SCRAM mechanisms

用postgres方式连接GaussDB(DWS)报错&#xff1a;Invalid or unsupported by client SCRAM mechanisms 报错内容 [2023-12-27 21:43:35] Invalid or unsupported by client SCRAM mechanisms org.postgresql.util.PSQLException: Invalid or unsupported by client SCRAM mec…...

汽车标定技术(十四)--标定数据固化方法简介

目录 1.标定数据固化方法 1.1 基于XCP固化 1.2 基于UDS固化 2. 具体实现形式 2.1 CAN...

2024年关键技术发展战略趋势前瞻

技术趋势在不断变化&#xff0c;但总的趋势是技术日益深入人类生活的方方面面&#xff0c;这些趋势可能会对未来的科技发展和人类生活产生深远影响&#xff0c;以下是预计今年将塑造未来的一些关键技术趋势。 更多的人将采用人工智能和机器学习 人工智能(AI)和机器学习(ML)不…...

Java程序设计——GUI设计

一、目的 通过用户图形界面设计&#xff0c;掌握JavaSwing开发的基本方法。 二、实验内容与设计思想 实验内容&#xff1a; 课本验证实验&#xff1a; Example10_6 图 1 Example10_7 图 2 图 3 Example10_15 图 4 设计思想&#xff1a; ①学生信息管理系统&#xff1a…...

three.js Raycaster(鼠标点击选中模型)

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right"…...

Springboot整合RocketMQ 基本消息处理

目录 1. 同步消息 2. 异步消息 3. 单向消息 4. 延迟消息 5. 批量消息 6. 顺序消息 7. Tag过滤 导入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId></dependency> …...

红外传感器深入解析

引言 宇宙间的任何物体只要其温度超过零度就能产生红外辐射&#xff0c;事实上同可见光一样&#xff0c;其辐射能够进行折射和反射&#xff0c;这样便产生了红外技术&#xff0c;利用红外光探测器因其独有的优越性而得到广泛的重视&#xff0c;并在军事和民用领域得到了广泛…...

18、Kubernetes核心技术 - InitContainer(初始化容器)

目录 一、概述 二、使用InitContainer 一、概述 InitContainer即初始化容器&#xff0c;是 K8S官方为我们提供的一个可以用来判断环境是否已经满足运行 Pod 应用前所需要的条件。 比如我们有一个应用&#xff0c;需要部署到Tomcat环境&#xff0c;那么在部署这个应用Pod之前…...

electron进程通信之预加载脚本和渲染进程对主进程通信

主进程和预加载脚本通信 主进程 mian,js 和预加载脚本preload.js,在主进程中创建预加载脚本, const createWindow () > {// Create the browser window.const mainWindow new BrowserWindow({width: 300,height: 300,// 指定预加载脚本webPreferences: {preload: path.j…...

如何有效使用 .gitignore 文件

在任何使用 Git 的软件项目中&#xff0c;.gitignore 文件都是一个必不可少的工具。它帮助开发者定义哪些文件和目录应该被 Git 忽略&#xff0c;从而保持代码库的整洁和管理的简便性。 什么是 .gitignore&#xff1f; .gitignore 文件是一个文本文件&#xff0c;您可以在其中指…...

大数据毕设分享 flink大数据淘宝用户行为数据实时分析与可视化

文章目录 0 前言1、环境准备1.1 flink 下载相关 jar 包1.2 生成 kafka 数据1.3 开发前的三个小 tip 2、flink-sql 客户端编写运行 sql2.1 创建 kafka 数据源表2.2 指标统计&#xff1a;每小时成交量2.2.1 创建 es 结果表&#xff0c; 存放每小时的成交量2.2.2 执行 sql &#x…...

大语言模型训练数据集

大语言模型的数据集有很多&#xff0c;以下是一些常用的&#xff1a; - 中文维基百科&#xff1a;这是一个包含大量中文文本的数据集&#xff0c;可用于训练中文语言模型。 - 英文维基百科&#xff1a;这是一个包含大量英文文本的数据集&#xff0c;可用于训练英文语言模型。 …...

python的课后练习总结4(while循环)

for循环用于针对序列中的每个元素的一个代码块。 while循环是不断的运行&#xff0c;直到指定的条件不满足为止。 while 条件&#xff1a; 条件成立重复执行的代码1 条件成立重复执行的代码2 …….. i 1while i < 5:print(i)i i 11、使用wh…...

Flink Connector 开发

Flink Streaming Connector Flink是新一代流批统一的计算引擎&#xff0c;它需要从不同的第三方存储引擎中把数据读过来&#xff0c;进行处理&#xff0c;然后再写出到另外的存储引擎中。Connector的作用就相当于一个连接器&#xff0c;连接Flink计算引擎跟外界存储系统。Flin…...

Golang leetcode707 设计链表 (链表大成)

文章目录 设计链表 Leetcode707不使用头节点使用头节点 推荐** 设计链表 Leetcode707 题目要求我们通过实现几个方法来完成对链表的各个操作 由于在go语言中都为值传递&#xff0c;&#xff08;注意这里与值类型、引用类型的而区别&#xff09;&#xff0c;所以即使我们直接在…...

Django和Vue项目运行过程中遇到的问题及解决办法

这是我从CSDN上边买来的一个系统的资源&#xff0c;准备在此基础上改成自己的系统&#xff0c;但是在运行项目这一步上都把自己难为了好几天&#xff0c;经过不断的摸索&#xff0c;终于完成了第一步&#xff01;&#xff01;&#xff01; 如果大家也遇到同样的问题&#xff0…...

Single-Image Crowd Counting via Multi-Column Convolutional Neural Network

Single-Image Crowd Counting via Multi-Column Convolutional Neural Network 论文背景人群密度方法过去的发展历史早期方法基于轨迹聚类的方法基于特征回归的方法基于图像的方法 Multi-column CNN用于人群计数基于密度图的人群计数通过几何自适应核生成密度图密度图估计的多列…...

el-cascader隐藏某一级的勾选框及vue报错Error in callback for watcher “options“的解决办法

今天用到饿了么的级联选择器时出现了这个报错Error in callback for watcher “options“: “TypeError: Cannot read propertie ‘level‘ of null,因为需求是在不同类型 el-cascader多选的时候默认是可以勾选所有级的选项的,如下图: 包含级联cascader的options、select的…...

网站介绍怎么写范文/网页设计网站

一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentOS 服务器下的MySQL环境. 为了方便在本地Navicat 上操作服务器上的数据库,需要在服务器上配置远程访问. 二.实验环境 Windows 10CentOS 7.4 三.配置…...

网站知识/手机优化软件哪个好用

前言看完快递鸟api对接教程这篇文章,然后把源码复制到你的项目上,就能快速完成中通快递接口对接.更适合刚入门的菜鸟,调用快递鸟的中通快递查询API接口&#xff0c;能查询到中通快递单号从收件、运输&#xff0c;到转运中心&#xff0c;派送到签收等各个环节的物流发货状态。快…...

可以做旅行计划的网站/百度客服中心人工在线咨询

作为一个软件工程团队&#xff0c;离不开下面三个要素&#xff1a;支持&#xff0c;即分享、责任和合作。 分享是出色技术团队的另一个关键要素&#xff0c;它是团队的基石之一。只有通过分享&#xff0c;团队才有可能实现11 > 2这种效应&#xff0c;分享也是让团队在整体上…...

义乌免费做网站/国内新闻大事20条

一般的DBMS系统&#xff0c;默认都会使用读提交(Read-Comitted&#xff0c;RC)作为默认隔离级别&#xff0c;如Oracle、SQLServer等&#xff0c;而MySQL却使用可重复读(Read-Repeatable&#xff0c;RR)。要知道&#xff0c;越高的隔离级别&#xff0c;能解决的数据一致性问题越…...

江苏备案网站名称/研究生培训机构排名

目录&#xff1a;企业微信API其他篇 01: 企业微信API开发前准备 02&#xff1a;消息推送 03: 通讯录管理 04&#xff1a;应用管理 目录&#xff1a; 1.1 概述 & 创建应用1.2 获取应用1.3 设置应用1.1 概述 & 创建应用 返回顶部 官方文档&#xff1a;http://work.we…...

网站标题的重要性/网站优化方案

一、Java平台体系及应用场景从1995年Sun Microsystems公司正式推出Java&#xff0c;到2006年时Sun公司将其开源&#xff0c;迄今为止已经有了20年的历史。Java本身已不仅仅只是一门面向对象的编程语言&#xff0c;而是由一系列计算机软件和规范形成的技术体系&#xff0c;这个技…...