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

leetcode 37. 解数独

编写一个程序,通过填充空格来解决数独问题。

数独的解法需 遵循如下规则:

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)
数独部分空格内已填入了数字,空白格用 ‘.’ 表示。

示例 1:
在这里插入图片描述

输入:board = [[“5”,“3”,“.”,“.”,“7”,“.”,“.”,“.”,“.”],[“6”,“.”,“.”,“1”,“9”,“5”,“.”,“.”,“.”],[“.”,“9”,“8”,“.”,“.”,“.”,“.”,“6”,“.”],[“8”,“.”,“.”,“.”,“6”,“.”,“.”,“.”,“3”],[“4”,“.”,“.”,“8”,“.”,“3”,“.”,“.”,“1”],[“7”,“.”,“.”,“.”,“2”,“.”,“.”,“.”,“6”],[“.”,“6”,“.”,“.”,“.”,“.”,“2”,“8”,“.”],[“.”,“.”,“.”,“4”,“1”,“9”,“.”,“.”,“5”],[“.”,“.”,“.”,“.”,“8”,“.”,“.”,“7”,“9”]]
输出:[[“5”,“3”,“4”,“6”,“7”,“8”,“9”,“1”,“2”],[“6”,“7”,“2”,“1”,“9”,“5”,“3”,“4”,“8”],[“1”,“9”,“8”,“3”,“4”,“2”,“5”,“6”,“7”],[“8”,“5”,“9”,“7”,“6”,“1”,“4”,“2”,“3”],[“4”,“2”,“6”,“8”,“5”,“3”,“7”,“9”,“1”],[“7”,“1”,“3”,“9”,“2”,“4”,“8”,“5”,“6”],[“9”,“6”,“1”,“5”,“3”,“7”,“2”,“8”,“4”],[“2”,“8”,“7”,“4”,“1”,“9”,“6”,“3”,“5”],[“3”,“4”,“5”,“2”,“8”,“6”,“1”,“7”,“9”]]
解释:输入的数独如上图所示,唯一有效的解决方案如下所示:
在这里插入图片描述
提示:
board.length == 9
board[i].length == 9
board[i][j] 是一位数字或者 ‘.’
题目数据 保证 输入数独仅有一个解
题目链接:解数独

class Solution:def __init__(self):## 需要注意的是 find 需要是一个全局参数,不能是输入 dfs 函数的一个参数self.find = False   def dfs(self, board, row, col, square, ss, index):if index == len(ss):self.find = Truereturnr, c = ss[index]if self.find:returnfor i in range(1, 10): if self.find:returnif row[r][i-1] == col[c][i-1] == square[int(r/3)][int(c/3)][i-1] == 0:row[r][i-1], col[c][i-1], square[int(r/3)][int(c/3)][i-1] = 1,1,1board[r][c] = str(i)index += 1self.dfs(board, row, col, square, ss, index)index -= 1if self.find:  ## 因为只有一个解, 找到后就不用再回溯了returnboard[r][c] = '.'row[r][i-1], col[c][i-1], square[int(r/3)][int(c/3)][i-1] = 0,0,0def solveSudoku(self, board: List[List[str]]) -> None:"""Do not return anything, modify board in-place instead."""row = [[0]*9 for i in range(9)]  # 判断第 i 行有没有 1-9 中的数, 若有对应的 index 则为 1col = [[0]*9 for i in range(9)]  # 判断某列square = [[[0]*9 for j in range(3)] for i in range(3)]  # 第几个正方形, 有没有某个数ss = []for i in range(9):for j in range(9):if board[i][j] == '.':ss.append([i, j])  ## 存放下需要填充数的位置else:val = int(board[i][j])## 第 i 行,第j 列,以及 第 i/3 行,j/3 列相应的位置值设为 1row[i][val-1] = col[j][val-1] = square[int(i/3)][int(j/3)][val-1] = 1print(ss)self.dfs(board, row, col, square, ss, 0)

相关文章:

leetcode 37. 解数独

编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分…...

GIT 分支管理办法

GIT 分支管理办法 一. 大型项目分支管理中存在的痛点 大型项目中需求的上线存在很大的不确定性,而且往往存在多版本、多团队、多开发并行的情况。尤其是大型企业对上线分支中编号的管理十分严苛,严禁夹带上线。这时对于开发而言,没有一个好…...

网络代理的多重应用与安全保障

随着互联网的迅速发展,网络代理技术日益受到关注,并在各个领域展现出重要作用。本文将深入探讨Socks5代理、IP代理以及它们在网络安全、爬虫应用和HTTP协议中的多重应用,帮助读者更好地理解和应用这些关键技术。 1. Socks5代理与SK5代理的异…...

C51--简易报警器设计

硬件清单: C52单片机 震动传感器模块 433M无线发射接受模块 继电器模块 高功率喇叭 杜邦线 振动传感器控制灯: 如何知道是否发生震动?震动后的信号表示又是什么? 振动传感器模块产生震动,输出低电平,绿色指…...

2023年最新全国各省行政区划数据(省-市-区县-乡镇-村)

背景 现实情况,在信息系统开发、电子商务平台、app等等相关软件开发,都会设计到行政区数据联动,这里已经爬好全国各省行政区划数据可供下载。 数据来源 内容为2023年全国统计用区划代码(12位)和城乡分类代码&#xff…...

html5 web 按钮跳转方法(及其相关)

html5 web 按钮跳转方法&#xff08;及其相关&#xff09; 方法一 <a href"javascript:" οnclick"history.go(-2); ">返回前两页</a> 方法二 <a href"javascript:" οnclick"self.locationdocument.referrer;">返…...

ES6 Generator 函数

Generator 函数是 ES6 提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同。 形式上&#xff0c;Generator 函数是一个普通函数&#xff0c;但是有两个特征。一是&#xff0c;function关键字与函数名之间有一个星号&#xff1b;二是&#xff0c;函数体内部使用…...

从零开始探索C语言(十二)----预处理器、输入输出及文件读写

文章目录 1. 预处理器1.1 预处理器实例1.2 预定义宏1.3 预处理器运算符1.4 参数化的宏 2. 输入和输出2.1 getchar() & putchar() 函数2.2 gets() & puts() 函数 3. 文件读写3.1 打开文件3.2 关闭文件3.3 写入文件3.4 读取文件3.5 二进制 I/O 函数 4. typedef 和 #defin…...

跨境电商:产业带的深度赋能

近年来&#xff0c;中国跨境电商平台崭露头角&#xff0c;成为推动国内产业带转型升级和出海的新引擎。这一充满活力的领域不仅让中国制造走向世界&#xff0c;也为国内众多产业提供了数字化升级的机会&#xff0c;实现了“小单快反”和按需供应。 专业跨境电商平台如SHEIN和阿…...

09-Vue基础之实现注册页面

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 文章…...

vue 树状结构数据渲染 (java 处理 list ->树状)

树状结构 Element ui https://element.eleme.cn/#/zh-CN/component/tree <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick"></el-tree><script>export default {data() {return {data: [{label: 一级…...

惊艳!这些独特的搜索引擎你都知道吗?

随着互联网的普及和发展&#xff0c;搜索引擎已经成为我们日常获取信息的重要工具。然而&#xff0c;当我们想要寻找一些特定类型的信息时&#xff0c;普通的搜索引擎可能无法满足我们的需求。这时&#xff0c;一些特殊的搜索引擎便能派上用场本。 文将介绍几种常用的特殊搜索引…...

解除OU屏蔽(EBS检查无法直接查询解决)

解除OU屏蔽(EBS检查无法直接查询解决) 具有OU屏蔽的例子 SELECT t.org_id, t.* FROM po.po_headers_all t -- 无屏蔽表&#xff0c;在PL/SQL运行有数据 SELECT t.org_id, t.* FROM apps.po_headers t -- 包含OU屏蔽&#xff0c;在PL/SQL中查询无数据多组织屏蔽原理 1. 在…...

10月8日 Jdbc(1)

jdbc 接口是一个类的父类 java连接数据库, java操作数据库, 把java作为数据库的一个客户端 JDBC是接口&#xff0c;而JDBC驱动才是接口的实现&#xff0c;没有驱动无法完成数据库连接&#xff01;每个数据库厂商都有自己的驱动&#xff0c;用来连接自己公司的数据库。 ​ …...

SAP 第三方销售/单独采购

一、概述 1. 概念 第三方销售和单独采购都是指接到客户订单后&#xff0c;客户所需产品需要向供应商进行采购&#xff0c;该供应商一般是指外部的供应商&#xff0c;特殊情况下&#xff0c;才可能是集团内部的其他子公司&#xff0c;当是集团内其他子公司时&#xff0c;因为如…...

yxy销售网站后台管理系统

springbootmybatisthymeleaf 第一个练习的项目就是小商品零售平台后台管理系统&#xff0c;但是当时由于业务不熟练&#xff0c;需求分析先不做好&#xff0c;导致在开发的过程中出现了很多问题。 这次首先把需求确定&#xff0c;详细的做好前期准备工作&#xff0c;再来进行…...

【vSphere 8 自签名证书】企业 CA 签名证书替换 vSphere Machine SSL 证书Ⅲ—— 颁发自签名证书

目录 博文摘要5. 使用 Microsoft 证书颁发机构颁发自签名 SSL 证书5.1 登录MADCS5.2 申请证书5.3 选择证书类型5.4 提交CR5.5 下载 Base 64 编码的证书5.6 导出 CA 证书&#xff08;1&#xff09;打开 cachain.p7b&#xff08;2&#xff09;进入证书导出导向&#xff08;3&…...

Hadoop3教程(十九):MapReduce之ETL清洗案例

文章目录 &#xff08;121&#xff09;ETL数据清洗案例参考文献 &#xff08;121&#xff09;ETL数据清洗案例 ETL&#xff0c;即Extract-Transform-Load的缩写&#xff0c;用来描述数据从源端&#xff0c;经过抽取&#xff08;Extract&#xff09;、转换&#xff08;transfor…...

数据库设计阶段-架构真题(五十七)

下面关于联合需求计划JRP叙述&#xff0c;不正确的是&#xff08;&#xff09;。 JRP是一种相对成本较高但十分有效的需求获取方法在讨论期间尽量避免使用专业术语JRP的主要目的是对需求进行分析和验证在JRP实施之前&#xff0c;应制定详细的议程&#xff0c;并严格遵照议程进…...

python控制Windows桌面程序自动化模块uiautomation

github仓库地址&#xff1a;GitHub - yinkaisheng/Python-UIAutomation-for-Windows: (Donot use 3.7.6,3.8.1):snake:Python 3 wrapper of Microsoft UIAutomation. Support UIAutomation for MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, Firefox, Chrome ... uiaut…...

MiniCPM-V 4.5 本地部署全攻略:从环境配置到图片、视频、多图推理实战

MiniCPM-V 4.5 本地部署全攻略&#xff1a;从环境配置到图片、视频、多图推理实战 在人工智能技术飞速发展的今天&#xff0c;视觉-语言多模态模型正成为研究和应用的热点。MiniCPM-V 4.5作为这一领域的最新成果&#xff0c;凭借其卓越的性能和高效的推理能力&#xff0c;为开…...

智能抢购京东茅台:零基础上手的成功率提升指南

智能抢购京东茅台&#xff1a;零基础上手的成功率提升指南 【免费下载链接】jd_maotai 抢京东茅台脚本&#xff0c;定时自动触发&#xff0c;自动预约&#xff0c;自动停止 项目地址: https://gitcode.com/gh_mirrors/jd/jd_maotai 在电商抢购的激烈竞争中&#xff0c;这…...

forkrun:革新数据处理,突破传统并行工具性能瓶颈

【导语&#xff1a;forkrun 作为一款自调优工具&#xff0c;可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度&#xff0c;尤其在 NUMA 架构上表现出色&#xff0c;为数据处理领域带来了新的变革。】数据处理速度的飞跃&#xff1a;5…...

本地部署openclaw(window环境下)不用花钱买token版

步骤一&#xff1a;参考视频到安装 openclaw 前就行&#xff08;剩下的步骤和博主不太样&#xff09; 步骤 2 1、免费注册一个 NVIDIA NIM 账户&#xff1a; 【点击前往】 登入后在设置中心生成你自己的API Keys &#xff0c;过期时间选择永不过期&#xff0c;目前可以直接免…...

LSLib:从游戏资源新手到MOD制作专家的完整路径

LSLib&#xff1a;从游戏资源新手到MOD制作专家的完整路径 【免费下载链接】lslib Tools for manipulating Divinity Original Sin and Baldurs Gate 3 files 项目地址: https://gitcode.com/gh_mirrors/ls/lslib 你是否曾经想过修改《神界原罪》系列或《博德之门3》的游…...

别再只会用‘Let‘s think step by step’了:DeepSeek-R1原生CoT机制详解与实战调优

解锁DeepSeek-R1推理潜能&#xff1a;原生思维链技术深度解析与高阶应用指南 当我们在数学考试中遇到复杂题目时&#xff0c;老师总会强调"把解题过程写清楚"。这种分步思考的方式&#xff0c;正是人类解决复杂问题的核心方法。如今&#xff0c;大语言模型也掌握了这…...

NVIDIA Profile Inspector 终极指南:免费解锁显卡隐藏性能的完整教程

NVIDIA Profile Inspector 终极指南&#xff1a;免费解锁显卡隐藏性能的完整教程 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 想要让游戏画面更流畅、画质更清晰吗&#xff1f;NVIDIA Profile Inspe…...

Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接

为 HagiCode 添加 GitHub Pages 自动部署支持 本项目早期代号为 PCode&#xff0c;现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力&#xff0c;让内容发布像喝水一样简单。 背景/引言 在 HagiCode 的开发过程中&#xff0c;我们遇到了一个很现实的问…...

OpenClaw人人养虾:配置Anthropic (Claude)

Anthropic 是 Claude 系列模型的开发者。Claude 以出色的指令遵循能力、深度推理和长文本处理著称。OpenClaw 支持通过 API Key 或 Claude Code CLI OAuth 接入。 认证方式 方式一&#xff1a;API Key&#xff08;推荐&#xff09; 前往 Anthropic Console 创建 API Key在 O…...

无人机开发者必看:如何基于QGC源码定制你的专属地面站?从环境搭建到第一个插件开发

无人机开发者必看&#xff1a;如何基于QGC源码定制你的专属地面站&#xff1f;从环境搭建到第一个插件开发 在无人机技术迅猛发展的今天&#xff0c;开源地面站软件QGroundControl&#xff08;QGC&#xff09;已成为行业标准工具之一。但对于追求个性化功能或特定应用场景的开发…...