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

37. 解数独

Problem: 37. 解数独

文章目录

  • 思路
  • 解题过程
  • 复杂度
  • Code

思路

递归回溯

解题过程

  1. 找到空格子(用 '.' 表示)。
  2. 尝试填入 1–9,每次填之前要检查是否合法:
  • 同一行没有重复;
  • 同一列没有重复;
  • 当前 3×3 宫格没有重复。
  1. 如果合法,就递归继续填下一个格子。
  2. 如果递归能走到最后(数独解完),就返回 true
  3. 如果不行,就回溯,把格子恢复成 '.',再尝试下一个数字。

复杂度

  • 时间复杂度: O(9n)O(9^n)O(9n),n为数独中空格的个数。
  • 空间复杂度: 等价于,O(1)O(1)O(1)

Code

class Solution {
public:void solveSudoku(vector<vector<char>>& board) { dfs(board); }bool dfs(vector<vector<char>>& board) {for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (board[i][j] != '.') {continue;}for (int c = '1'; c <= '9'; c++) {if (isValid(board, i, j, c)) {board[i][j] = c;if (dfs(board)) {return true;}board[i][j] = '.';}}return false;}}return true;}bool isValid(vector<vector<char>>& board, int row, int col, char c) {for (int i = 0; i < 9; i++) {if (board[row][i] == c) {return false;}if (board[i][col] == c) {return false;}int r = (row / 3) * 3 + i / 3;int l = (col / 3) * 3 + i % 3;if (board[r][l] == c) {return false;}}return true;}
};
http://www.xdnf.cn/news/1407511.html

相关文章:

  • GaRe:面向非约束户外照片集的可重光照 3D 高斯溅射技术简要解析
  • Android开发-活动页面
  • C# .Net8 WinFormsApp使用日志Serilog组件
  • c++ Effective c++ 条款5
  • 机器学习之线性回归
  • 数据结构02:排序算法
  • PyQt5 进度条详细示例与性能优化
  • 电商系统的分布式事务调优
  • Knit-易用的prompt管理和调试工具
  • 第六章:透明度-Transparency《Unity Shaders and Effets Cookbook》
  • io进程线程;标准IO;0831
  • 【嵌入式】【调用函数图】手动绘制函数调用状态机
  • 【优先算法--前缀和】
  • 3DES加解密的算法Java Python Golang
  • CVPR上的多模态检索+视频理解,LLM助力提效翻倍
  • 8.1【Q】VMware相关
  • 吴恩达机器学习作业十一:异常检测
  • 大模型——利用RAG构建智能问答平台实战
  • 在Ubuntu服务器上安装KingbaseES V009R002C012(Orable兼容版)数据库过程详细记录
  • Qwen3_moe模型代码解析
  • FreeRTOS实战:任务创建与调度详解
  • 【MySQL自学】SQL语法全解(上篇)
  • 【PS实战】逐步打造静物的艺术色调(大学作业)
  • 从零开始搭建使用 TDengine:新用户快速上手指南
  • windows docker 中的mysql 无法被外部浏览器访问如何解决
  • 自动驾驶中的传感器技术37——Lidar(12)
  • Ansible 临时命令与常用模块实操指南
  • 【人工智能99问】LLaMA中的RoPE是什么?(35/99)
  • Paimon——官网阅读:Spark 引擎
  • Spark内存管理