Golang | Leetcode Golang题解之第37题解数独

 题目:

题解:

func solveSudoku(board [][]byte) {var line, column [9][9]boolvar block [3][3][9]boolvar spaces [][2]intfor i, row := range board {for j, b := range row {if b == '.' {spaces = append(spaces, [2]int{i, j})} else {digit := b - '1'line[i][digit] = truecolumn[j][digit] = trueblock[i/3][j/3][digit] = true}}}var dfs func(int) booldfs = func(pos int) bool {if pos == len(spaces) {return true}i, j := spaces[pos][0], spaces[pos][1]for digit := byte(0); digit < 9; digit++ {if !line[i][digit] && !column[j][digit] && !block[i/3][j/3][digit] {line[i][digit] = truecolumn[j][digit] = trueblock[i/3][j/3][digit] = trueboard[i][j] = digit + '1'if dfs(pos + 1) {return true}line[i][digit] = falsecolumn[j][digit] = falseblock[i/3][j/3][digit] = false}}return false}dfs(0)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker网路和主机通讯问题

#注 1&#xff0c;安装docker和启动容器服务的时候如果防火墙处于开启状态&#xff0c;那么重启docker里面的容器的时候必须开启防火墙&#xff0c;否则会出现iptable错误&#xff1b; 2&#xff0c;linux开启防火墙会导致主机和docker网络之间单向通讯&#xff0c;主机可以访…

一周IT资讯

又降了&#xff1f;运维4月平均月薪1W6&#xff1f; 薪资作为大部分人的主要收入来源&#xff0c;是每个人最关注的话题之一。 最近&#xff0c;小编搜索了近半年的运维薪资趋势&#xff0c;看看你的钱包缩水了没&#xff1f; *数据来自看准网 据了解&#xff0c;运维2024年…

单链表详解(无哨兵位),实现增删改查

1.顺序表对比单链表的缺点 中间或头部插入时&#xff0c;需要移动数据再插入&#xff0c;如果数据庞大会导致效率降低每次增容就需要申请空间&#xff0c;而且需要拷贝数据&#xff0c;释放旧空间增容造成浪费&#xff0c;因为一般都是以2倍增容 2.链表的基础知识 链表也是线…

LeetCode---128双周赛

题目列表 3110. 字符串的分数 3111. 覆盖所有点的最少矩形数目 3112. 访问消失节点的最少时间 3113. 边界元素是最大值的子数组数目 一、字符串的分数 按照题目要求&#xff0c;直接模拟遍历即可&#xff0c;代码如下 class Solution { public:int scoreOfString(string …

C语言入门算法——爬楼梯(了解动态规划)

题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶…

java锁面试题

这里写目录标题 1.悲观锁和乐观锁2.悲观锁和乐观锁的场景3.自旋锁和自适应自旋锁4.无锁、偏向锁、轻量级锁、重量级锁5.公平锁和非公平锁6.可重入锁7.排他锁和共享锁8.锁优化技术 1.悲观锁和乐观锁 悲观锁&#xff1a;在修改数据时&#xff0c;一定有别的线程来使用&#xff0…

代码随想录算法训练营第三十二天| LeetCode122.买卖股票的最佳时机II、LeetCode55.跳跃游戏、LeetCode45.跳跃游戏II

LeetCode 122 买卖股票的最佳时机II 题目链接&#xff1a;122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 【解题思路】 利润当天成交价-昨天成交价 当遇到利润为正数的情况&#xff0c;将其收集。 【解题步骤】 1.定义一个result&#xff0c;将每天…

如何使用ArcGIS Pro进行路径分析

路径分析是一种空间分析技术&#xff0c;用于确定两个或多个地点之间最佳路径或最短路径&#xff0c;这里为大家介绍一下在ArcGIS Pro中如何进行路径分析&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的道路数据&#xff0c;除了道路数据&a…

阿里TTl使用管理日志

在管理日志的时候我们需要查看生成日志都是那些人干了那些事&#xff0c;那么怎么在日志上查看这些事情呢&#xff0c;首先呢可以直接使用Slf4j,然后再配置文件里配置一下 #日志文件最大上限 logging.file.max-size100MB #日志文件存储位置 logging.file.path./logs #日志文件…

中颖51芯片学习7. ADC模数转换

中颖51芯片学习7. ADC模数转换 一、ADC工作原理简介1. 概念2. ADC实现方式3. 基准电压 二、中颖芯片ADC功能介绍1. 中颖芯片ADC特性2. ADC触发源&#xff08;1&#xff09;**软件触发**&#xff08;2&#xff09;**TIMER4定时器触发**&#xff08;3&#xff09;**外部中断2触发…

面试: 悲观锁和乐观锁

一、悲观锁的代表是synchronized和Lock 锁 其核心思想是【线程只有占有了锁&#xff0c;才能去操作共享变量&#xff0c;每次只有一个线程占锁成功&#xff0c;获取锁失败的线程&#xff0c;都得停下来等待】线程从运行到阻塞、再从阻塞到唤醒&#xff0c;涉及线程上下文切换&a…

【设计模式】装饰模式

目录 什么是装饰模式 代码实现 什么是装饰模式 Java装饰模式是一种结构型设计模式&#xff0c;它允许你动态地将新功能附加到对象上&#xff0c;通过将对象包装在一个装饰器对象中。这种模式能够在不修改现有对象结构的情况下&#xff0c;灵活地添加功能。 在Java中&#xf…

vue ---列表渲染

1.基本列表 v-for指令: 用于展示列表数据语法&#xff1a;v-for“(item, index) in xxx” :key“yyy”.可遍历&#xff1a;数组、对象、字符串&#xff08;用的很少&#xff09;、指定次数&#xff08;用的很少&#xff09; <!DOCTYPE html> <html><head>&l…

CTFHub(web sql注入)(三)

MYSQL 手工注入 1.判断字段数 输入1 输入2 输入3 得知字段有两个 2.判断注入类型 1 and 1 1 1 and 12 回显错误&#xff0c;说明存在sql注入 3.查看数据库内容 知道字段数量为2后&#xff0c;可以查看数据库位置 1 union select 1,2 使用union select 1,2查看未发现数…

【Java基础】21.重写(Override)与重载(Overload)

文章目录 一、重写(Override)1.方法重写2.方法的重写规则3.Super 关键字的使用 二、重载(Overload)1.方法重载2.重载规则3.实例 三、重写与重载之间的区别 一、重写(Override) 1.方法重写 重写&#xff08;Override&#xff09;是指子类定义了一个与其父类中具有相同名称、参…

阿里云OSS 存储对象的注册与使用

目录 一、什么是阿里云OSS 二、 点击免费试用 2.1 选择第一个&#xff0c;点击免费试用 ​编辑 2.2 登录管理控制台 2.3 进入Bucket 2.4、在阿里云网站上的个人中心配置Accesskey,查询accessKeyId和accessKeySecret。 2.5、进入AccssKey管理页面应该会出现下图提示&…

连接共享打印机提示0x00000011b

步骤一&#xff1a;调出运行窗口&#xff0c;输入【regedit】调出注册表编辑器。步骤二&#xff1a;找到以下路径&#xff1a;【计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print】。步骤三&#xff1a;鼠标右击——点击【新建】——选择【DWORD (32位&#…

基于TypeScript自定义Strapi users-permissions插件接口

Strapi的官方文档提供了扩展插件的方式&#xff0c;例如在src/extensions/users-permissions/strapi-server.ts中自定义&#xff0c;但文档提供的例子直接重写了原有插件的函数&#xff0c;而无法通过类似自定义API调用super.find()等方式调用原有插件的函数。 // 自定义API的…

Webservice使用教程

Webservice使用教程&#xff08;jax-ws&#xff09; Webservice的交互模式是一个类似于CS结构的模式&#xff0c;因此它需要一个Server端与一个Client端。在Client端访问Server端的接口来实现Webservice的功能。 Server端 打开IDEA创建gradle模块 webservice-01-server1 然后…

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习