尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

LeetCode--37. 解数独(回溯算法)

LeetCode--37. 解数独(回溯算法)
📅 发布时间:2026/7/11 21:08:20

37. 解数独

题目描述

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

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

  1. 数字1-9在每一行只能出现一次。
  2. 数字1-9在每一列只能出现一次。
  3. 数字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]是一位数字或者'.'
  • 题目数据保证输入数独仅有一个解

代码

classSolution{/** * 判断当前位置填入数字 k 是否合法 * * @param row 当前行 * @param column 当前列 * @param k 当前尝试填入的数字 * @param board 当前数独棋盘 */publicbooleanisValid(introw,intcolumn,chark,char[][]board){/** * 检查同行、同列 * * 数独规则: * 同一行、同一列不能出现重复数字 */for(inti=0;i<9;i++){// 同行存在重复if(board[row][i]==k){returnfalse;}// 同列存在重复if(board[i][column]==k){returnfalse;}}/** * 检查 3 × 3 九宫格 */// 当前九宫格左上角坐标introwStart=row/3*3;intcolumnStart=column/3*3;// 遍历当前九宫格for(inti=rowStart;i<rowStart+3;i++){for(intj=columnStart;j<columnStart+3;j++){// 九宫格中存在重复数字if(board[i][j]==k){returnfalse;}}}// 当前位置合法returntrue;}/** * 回溯函数 * * 返回值: * true -> 找到正确解 * false -> 当前路径失败 */publicbooleanbacktracking(char[][]board){/** * 遍历整个棋盘 */for(inti=0;i<9;i++){for(intj=0;j<9;j++){/** * 找到空格 */if(board[i][j]=='.'){/** * 尝试填入 1 ~ 9 */for(chark='1';k<='9';k++){/** * 如果当前数字合法 */if(isValid(i,j,k,board)){// 做选择:填入数字board[i][j]=k;// 递归下一层booleanresult=backtracking(board);/** * 如果后续成功, * 直接返回 true */if(result==true){returntrue;}/** * 回溯: * 当前数字不行,恢复为空格 */board[i][j]='.';}}/** * 1~9 都尝试失败 * * 说明当前路径无解 */returnfalse;}}}/** * 没有找到空格 * * 说明整个棋盘已经填完 * 找到正确答案 */returntrue;}publicvoidsolveSudoku(char[][]board){// 启动回溯backtracking(board);}}

相关新闻

  • STM32G431RB与TLA2518 ADC的高精度信号采集方案
  • Python shade-python-sdk 包详解:功能、安装、语法与实战案例
  • PID控制算法C语言实现:3种结构体封装对比与性能实测(附完整代码)

最新新闻

  • 2026年7月最新南通雅典官方售后客服电话及服务网点地址查询 - 亨得利官方服务中心
  • Python的range函数,你还在傻傻用?别再被它坑惨了
  • 高精度ADC与MCU组合在医疗设备中的应用
  • go清除3字节字符
  • 终极实战指南:使用TikTokenizer精准控制AI应用成本与性能
  • 重庆断桥铝合金门窗厂家排行 5家实力品牌实测对比 - 起跑123

日新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号