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

针织东莞网站建设技术支持崇明手机网站建设

针织东莞网站建设技术支持,崇明手机网站建设,网页制作素材网站推荐,免费软件网站建设题目链接#xff1a;37. 解数独 题目描述 编写一个程序#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。…题目链接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 9board[i].length 9board[i][j] 是一位数字或者 .题目数据 保证 输入数独仅有一个解 文章讲解代码随想录 视频讲解回溯算法二维递归解数独不过如此| LeetCode37. 解数独_哔哩哔哩_bilibili 题解1回溯法 思路使用回溯法求解棋盘类问题。 回溯分析 递归函数的参数和返回值返回值是一个布尔值表示是否填充完毕。参数为 num表示当前已填充几个数字。递归函数的终止条件num 等于81即填充完整个数独。单层递归的逻辑若当前格还未填充则从1到9尝试填充然后递归的填充下一格已填充则直接递归的填充下一格。剪枝当与其他格数字冲突时跳过本次填充。 /*** param {character[][]} board* return {void} Do not return anything, modify board in-place instead.*/ var solveSudoku function(board) {const rowState new Array(9).fill().map(() new Array(9).fill(false)); // 行状态const colState new Array(9).fill().map(() new Array(9).fill(false)); // 列状态const squierState new Array(3).fill().map(() new Array(3).fill().map(() new Array(9).fill(false))); // 单元状态// 初始化状态表for (let i 0; i 9; i) {for (let j 0; j 9; j) {if (board[i][j] .) {continue;}rowState[i][board[i][j]] true;colState[j][board[i][j]] true;squierState[parseInt(i / 3)][parseInt(j / 3)][board[i][j]] true;}}const backtracking function (num) {if (num 81) {return true; // 填充完毕返回 true}const col num % 9; // 计算列数const row (num - col) / 9; // 计算行数if (board[row][col] ! .) {return backtracking(num 1); // 已经有数字了向下遍历}// 从1到9尝试填充for (let j 1; j 9; j) {// 和规则冲突尝试填充下一个数if (rowState[row][j] || colState[col][j] || squierState[parseInt(row / 3)][parseInt(col / 3)][j]) {continue;}board[row][col] j; // 填充rowState[row][j] true; // 更新行状态colState[col][j] true; // 更新列状态squierState[parseInt(row / 3)][parseInt(col / 3)][j] true; // 更新单元状态// 向下遍历if (backtracking(num 1)) {return true; // 已经填充完毕返还 true}// 回溯board[row][col] .;rowState[row][j] false;colState[col][j] false;squierState[parseInt(row / 3)][parseInt(col / 3)][j] false;}return false;}backtracking(0); }; 分析设 m 为 . 的数量则时间复杂度为 O(9 ^ m)空间复杂度为 O(n²)。 收获 练习使用回溯法求解棋盘类问题和 n 皇后问题不同的是本题需要填充一个二维数组。
http://www.zqtcl.cn/news/995314/

相关文章:

  • 自己做网站优化韩国外贸平台
  • 齐河建设局网站长沙市住房和建设局官方网站
  • 萧山区住房和城乡建设局网站wordpress网站合并
  • 做背景网站网站建设与维护制作网页
  • 网站建设公司知名营销型企业网站项目策划表
  • 写作网站哪个最好企业培训机构有哪些
  • 江苏省水利工程建设局网站域名不备案可以正常使用吗
  • 对网站开发语言的统计网站内容建设包括什么
  • 西安高端网站建设怎样开公司
  • 华为做网站免费签名设计在线生成
  • 网站产品整合推广爱网聊的男人是什么心理
  • 武威市建设厅网站汕头seo外包公司
  • 酒泉网站怎么做seo东莞高明网站设计
  • 沧州网站建设联系电话杭州设计公司logo
  • 网站子站点是什么意思亚马逊国际站官网
  • 影视cms哪个好苏州关键词优化搜索排名
  • 杭州微信网站开发网站优化公司免费咨询
  • 宣武富阳网站建设南昌公众号开发公司
  • 免费的网站推荐下载wordpress %s
  • 网站的原理百度旧版本下载
  • 衡水网站建设地方新网域名证书下载
  • 自己做的创意的网站什么是淘宝seo
  • 网站开发包含哪些网站设计实例
  • 网站建设 核算棋牌源码论坛
  • 杭州网站建设案例网页设计程序
  • 网站建设的相关问题湛江网站开发
  • 网站开发作业wordpress用户角色
  • 品牌网站制作建设微信小程序开发需要什么技术
  • 新网站注册国内食品行业网站开发
  • 太原微商网站建设网站里面的视频功能怎么做的