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

解数独 (leetcode 37

leetcode系列

文章目录

  • 一、核心操作
  • 二、外层配合操作
  • 三、核心模式代码
  • 总结


使用二维递归,不管在哪一层都对矩阵进行全部遍历

一、核心操作

  1. 建立判断是否有效函数,对 i j 位置是否能放入k进行判断,由于此时还没有放置k,则可以直接对行列进行遍历,但是对于每一个小九宫格的遍历需要使用 先除再乘 的方式就可以将其重置为小九宫格的起始位置,再对其进行行列遍历即可
  2. 建立二维回溯函数,从每一行开始遍历,再遍历每一行的每一列,对于需要填充的位置,先判断一下数字1-9能不能填进去,如果都不能填进去则说明这个数独没有结果;如果可以放进去,再进行常规的回溯操作

提示:小白个人理解,如有错误敬请谅解!

二、外层配合操作

三、核心模式代码

代码如下:

class Solution {
public:bool isValid(int row, int col, int k, vector<vector<char>>& board){for(int i=0;i<9;i++){if(board[i][col]==k)return false;}for(int j=0;j<9;j++){if(board[row][j]==k)return false;}int startX=row/3*3;int startY=col/3*3;for(int i=startX;i<startX+3;i++){for(int j=startY;j<startY+3;j++){if(board[i][j]==k)return false;}}return true;}bool backTracking(vector<vector<char>>& board){for(int i=0;i<board.size();i++){for(int j=0;j<board.size();j++){if(board[i][j]!='.')continue;for(char k='1';k<='9';k++){if(isValid(i,j,k,board)){board[i][j]=k;if(backTracking(board))return true;board[i][j]='.';}}return false;}}return true;}void solveSudoku(vector<vector<char>>& board) {backTracking(board);}
};

总结

  1. 一定要先判断 i j 位置能不能放入数字k,如果不能放入就尝试下一个数字,如果能放入这个数字再往里放,然后再回溯
  2. 通过整数除法的特性,将 row/3*3 即可将结果变为0或3或6,这样就将一个随机的数变为每个小九宫格的起始位置

相关文章:

解数独 (leetcode 37

leetcode系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 使用二维递归&#xff0c;不管在哪一层都对矩阵进行全部遍历 一、核心操作 建立判断是否有效函数&#xff0c;对 i j 位置是否能放入k进行判断&#xff0c;由于此时还没有放置k&#xff0c;则可以直…...

人工智能与人的智能,思维模型分享【2】沉没成本

**沉没成本&#xff08;Sunk Cost&#xff09;** 是指已经发生且无法收回的成本&#xff08;时间、金钱、精力等&#xff09;。沉没成本思维模型的核心原则是&#xff1a;理性决策应基于未来可能的收益与成本&#xff0c;而非被已经无法改变的历史投入所影响。陷入沉没成本陷阱…...

Redis 部署方式有哪些

以下是 Redis 主从复制和分布式部署的详细方法和步骤&#xff1a; 1.Redis 主从复制部署 架构 主从复制是 Redis 最基本的分布式机制&#xff0c;通过将数据从主节点&#xff08;Master&#xff09;复制到多个从节点&#xff08;Slave&#xff09;&#xff0c;实现读写分离和数…...

艾尔登复刻Ep1——客户端制作、场景切换、网络控制

需要添加的插件内容 Netcode for GameObjects&#xff1a;是一个为 Unity 游戏开发提供高级网络功能的 SDK。它的主要作用是允许开发者在其 GameObject 和 MonoBehaviour 工作流中集成网络功能&#xff0c;并且可以与多种底层传输层协议兼容。 具体内容请看&#xff1a;https:…...

【视频】ffmpeg、Nginx搭建RTMP、HLS服务器

1、源码安装Nginx 1)源码下载 因为要使用Nginx的模块nginx-rtmp-module,所以要下载 nginx 和 nginx-rtmp-module 的源码。 下载地址: http://nginx.org/en/download.html https://github.com/arut/nginx-rtmp-module/tags2)解压、配置 在同一个目录中解压 nginx 和 nginx…...

基于YOLO11深度学习的遥感视角地面房屋建筑检测分割与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

Java中常见的PO、VO、DAO、BO、DO、DTO、POJO、Query类解释(通俗易懂)

文章目录 先点击收藏和点赞,切勿白嫖,感谢一丶PO(persistant object)持久对象二丶VO(value object)值对象三丶DAO(Data Access Objects) 数据访问对象接口四丶BO/DO(Business Object) 业务对象层五丶DTO(Data Transfer Object) 数据传输对象六丶POJO(Plain Old Java Objects) 简…...

完美解决ElementUI中树形结构table勾选问题

完美解决ElementUI中树形结构table勾选问题 实现功能效果图全选取消全选取消父节点取消某个子节点 关键代码 实现功能 1. 全选/取消全选&#xff0c;更新所有节点勾选状态 2. 勾选父/子节点&#xff0c;子/父节点状态和全选框状态更新 效果图 全选 取消全选 取消父节点 取消某…...

laravel项目中使用FFMPeg 剪裁视频

# 运行环境需安装的软件 ffmpeg # 安装的扩展 pbmedia/laravel-ffmpeg: ^8.3 # 扩展文档 https://packagist.org/packages/pbmedia/laravel-ffmpeg # 引入的类 use FFMpeg\Coordinate\TimeCode; use FFMpeg\Format\Video\X264; use FFMpeg\Exception\RuntimeException; use …...

docker基本应用和相关指令

文章目录 概要镜像管理容器操作网络管理数据卷管理其他常用指令典型场景示例小结 概要 Docker的命令通常分为几个大类&#xff0c;比如镜像管理&#xff08;images&#xff09;、容器管理&#xff08;containers&#xff09;、网络&#xff08;network&#xff09;、数据卷&…...

文件解析漏洞靶场集锦详解

一、IIS解析漏洞 环境安装&#xff1a;windows2003iis6 1.目录解析 .asp文件夹中的任意文件都会被当做asp文件去执行 1.在iis6的网站根目录新建⼀个名为1.asp的文件 2. 在1.asp中新建⼀个jpg文件。内容为 <%now()%>asp代码 3.在外部浏览器中访问iis⽹站中的1.jpg 发现…...

基于Java + Redis + RocketMQ的库存秒杀系统设计与实现

一、秒杀场景核心挑战 瞬时高并发&#xff1a;万级QPS访问压力 库存准确性&#xff1a;避免超卖/少卖 系统可用性&#xff1a;防止雪崩效应 数据一致性&#xff1a;缓存与数据库同步 二、技术架构设计 1. 分层架构设计 用户请求│▼ 接入层&#xff08;Nginx限流 令牌拦…...

hcia华为路由器静态路由实验配置

目录 一、网络拓扑分析 二、华为路由器配置&#xff08;分设备&#xff09; 1. R1 配置 2. R2 配置 3. R3 配置 三、验证测试 拓扑图 一、网络拓扑分析 IP 地址规划&#xff1a; R1&#xff1a;E0/0/0&#xff08;12.1.1.1/24&#xff09;、E0/0/1&#xff08;192.168.1.…...

C语言【数据结构】:理解什么是数据结构和算法(启航)

引言 启航篇&#xff0c;理解什么是数据结构和算法 在 C 语言编程领域&#xff0c;数据结构和算法是两个核心且紧密相关的概念 一、数据结构 定义 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合&#xff08;比如数组&#xff09;&#xff0c;它是组织和存储数…...

Redis7——进阶篇(五)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…...

手写svm primal form形式

svm.py import numpy as npclass SVM:def __init__(self,C1.0,lr0.01,batch_size32,epochs100):self.CCself.lrlrself.batch_sizebatch_sizeself.epochsepochsself.wNoneself.b0.0self.epoch0#计算最高得分和对应w&#xff0c;bdef fit(self,X,y,X_valNone,y_valNone):sample,…...

Linux中Firewall防火墙操作

一、安装Firewall命令 yum install firewalld firewalld-config二、防火墙的基本操作 1、查看防火墙状态 使用systemctl status firewalld命令可以查看firewalld服务的状态。也可以使用firewall-cmd --state命令直接查看防火墙的状态。 2、开启防火墙 * 临时性开启&…...

【MySQL】MySQL服务器——mysqld

1.MySQL服务器 是名为 mysqld 的数据库服务器程序&#xff0c;和“主机”&#xff08;host&#xff09;不一样是一个多线程的单进程管理对磁盘和内存中数据库的访问支持并发的客户端连接支持多个存储引擎&#xff0c;常见的存储引擎包括InnoDB、MyISAM、Memory、Archive支持事…...

VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件

设计部门针对某个项目做了一个工艺汇总报告&#xff0c;原先只要几十个工艺文件&#xff0c;组合成一个PDF&#xff0c;但后来要求要多放点PDF进去&#xff0c;但工艺文件都混在一起又不知道哪些是重复的&#xff0c;找上我让我帮忙处理一下&#xff0c;我开始建议让她重新再组…...

windows 下用docker 部署nginx

简单版本记录&#xff0c;详细内容后续再写 一、拉取nginx镜像&#xff0c;运行 docker pull nginx 二、创建项目目录 C:\nginx-docker\ ├── html\ │ └── index.html └── conf | └── nginx.conf// index.html<!DOCTYPE html> <html> <head&g…...

云原生性能测试全解析:如何构建高效稳定的现代应用?

一、引言 随着云计算技术的快速发展&#xff0c;云原生&#xff08;Cloud Native&#xff09;架构成为现代应用开发的主流模式。云原生应用通常采用微服务架构、容器化部署&#xff0c;并利用 Kubernetes&#xff08;K8s&#xff09;等编排工具进行管理。然而&#xff0c;云原…...

计网面试准备

正确理解网络数据传输过程 同一路由器的不同接口属于不同局域网&#xff0c;广播只能在同一个局域网...

【数据分享】1999—2023年我国地级市社会消费品零售总额和年末金融机构存贷款余额(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2024年《中国城市统计年鉴》整理的1999-2023年地级市的人口相关数据、染物排放和环境治理相关数据和房地产投资情况和商品房销售面积相关指标数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享…...

鸿蒙开发者社区资源的重要性

鸿蒙系统&#xff0c;作为华为公司自主研发的操作系统&#xff0c;旨在为各类智能设备提供统一的平台。它不仅支持手机、平板电脑等移动设备&#xff0c;还涵盖了物联网&#xff08;IoT&#xff09;设备和其他智能家居产品。鸿蒙系统的开发环境和工具链对于开发者来说至关重要&…...

PHP批量去除Bom头的方法

检查的代码&#xff1a; <?php$dir __DIR__; $files new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));foreach ($files as $file) {if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) php) {$content file_get_contents(…...

字节攻克关键技术,大模型训练效率提升1.7倍,成本节省40%

近日&#xff0c;字节豆包大模型团队开源针对 MoE 架构的关键优化技术COMET&#xff0c;该技术可将大模型训练效率提升1.7倍&#xff0c;成本节省40%。据悉&#xff0c;该技术已实际应用于字节的万卡集群训练&#xff0c;累计帮助节省了数百万 GPU 小时训练算力。 MoE&#xff…...

react对比vue的核心属性

Vue 常用的核心属性可以分为以下几类&#xff0c;并与 React 实现方式对比&#xff1a; 1. 核心属性 // Vue 选项式 API 常用属性 export default {props: {}, // 类似 React 的 propsdata() { return {} }, // 类似 React 的 useStatecomputed: {}, // 类似 React …...

[Pytorch报错问题解决]AttributeError: ‘nn.Sequential‘ object has no attribute ‘append‘

问题 运行深度学习代码的时候遇到了以下报错问题&#xff1a; Traceback (most recent call last):File "/home/anaconda3/envs/Text2HOI/lib/python3.9/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_contextreturn func(*args, **kwargs)Fi…...

golang字符串常用的系统函数

1.说明 字符串在开发中&#xff0c;使用频率非常高&#xff0c;所以我们需要掌握字符串的常用方法。 2.统计字符串的长度 按字节len&#xff08;str&#xff09;go的编码统一为utf-8&#xff08;ascii的字符 字母和数字占一个字节&#xff0c;汉字占三个字节&#xff09; st…...

基于威胁的安全测试值得关注,RASP将大放异彩

2‍021年7月21日&#xff0c;由中国信息通信研究院&#xff08;CAICT&#xff09;指导、悬镜安全主办、腾讯安全协办的中国首届DevSecOps敏捷安全大会&#xff08;DSO 2021&#xff09;在北京圆满举办。大会以“安全从供应链开始”为主题&#xff0c;寓意安全基础决定“上层建筑…...