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

360企业网站认证广州建造网站公司

360企业网站认证,广州建造网站公司,成都哪个网站建设比较好,网络运营托管文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析#xff1a;本题也是一道困难题#xff0c;难点在于如何构建数独棋盘#xff0c;如何检查棋盘的合法性#xff… 文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析本题也是一道困难题难点在于如何构建数独棋盘如何检查棋盘的合法性再一个难点在于如何对棋盘进行遍历并放置数字。数组棋盘的构建笔者采用了一个最朴素的方法将已知的‘.’和数字依次push_back进棋盘数组中然后根据数独的规则每行每列每个九空格内不能有重复的元素构建isValid函数然后利用两层嵌套循环遍历棋盘棋盘的每个点用1-9的数组依次带入如果合法则进行下一步的递归。最终得到一个数独的解这个解就是整个棋盘数组将其输出。   程序如下 class Solution { private:bool isValid(vectorvectorchar board, char num, int row, int col) { // 检查棋盘是否合法 // 检查行列九空格内是否有重复元素for (int i 0; i board.size(); i) { // 检查列if (board[i][col] num) return false;}for (int j 0; j board[0].size(); j) { // 检查行if (board[row][j] num) return false;}// 检查九空格找到board[row][col]所在的九空格 然后用二层循环遍历int startRow (row / 3) * 3; int startCol (col / 3) * 3;for (int i startRow; i startRow 3; i) {for (int j startCol; j startCol 3; j) {if (board[i][j] num) return false;}}return true;}bool backtracking(vectorvectorchar board) {for (int row 0; row board.size(); row) {for (int col 0; col board[0].size(); col) {if (board[row][col] ! .) continue;for (char num 1; num 9; num) {if (isValid(board, num, row, col)) {board[row][col] num; // 放置数字处理节点;if(backtracking(board)) return true; // 递归board[row][col] .; // 回溯撤销处理结果}}return false; // 九个数字都不行说明数独无解}}return true;} public:vectorvectorchar solveSudoku(vectorvectorchar board) {backtracking(board);return board;} };复杂度分析 时间复杂度 O ( n ! ) O(n!) O(n!)。空间复杂度 O ( n ) O(n) O(n)。 三、完整代码 # include iostream # include vector # include string using namespace std;class Solution { private:bool isValid(vectorvectorchar board, char num, int row, int col) { // 检查棋盘是否合法 // 检查行列九空格内是否有重复元素for (int i 0; i board.size(); i) { // 检查列if (board[i][col] num) return false;}for (int j 0; j board[0].size(); j) { // 检查行if (board[row][j] num) return false;}// 检查九空格找到board[row][col]所在的九空格 然后用二层循环遍历int startRow (row / 3) * 3; int startCol (col / 3) * 3;for (int i startRow; i startRow 3; i) {for (int j startCol; j startCol 3; j) {if (board[i][j] num) return false;}}return true;}bool backtracking(vectorvectorchar board) {for (int row 0; row board.size(); row) {for (int col 0; col board[0].size(); col) {if (board[row][col] ! .) continue;for (char num 1; num 9; num) {if (isValid(board, num, row, col)) {board[row][col] num; // 放置数字处理节点;if(backtracking(board)) return true; // 递归board[row][col] .; // 回溯撤销处理结果}}return false; // 九个数字都不行说明数独无解}}return true;} public:vectorvectorchar solveSudoku(vectorvectorchar board) {backtracking(board);return board;} };int main() {vectorvectorchar board;board.push_back({ 5, 3, ., ., 7, ., ., ., . });board.push_back({ 6, ., ., 1, 9, 5, ., ., . });board.push_back({ ., 9, 8, ., ., ., ., 6, . });board.push_back({ 8, ., ., ., 6, ., ., ., 3 });board.push_back({ 4, ., ., 8, ., 3, ., ., 1 });board.push_back({ 7, ., ., ., 2, ., ., ., 6 });board.push_back({ ., 6, ., ., ., ., 2, 8, . });board.push_back({ ., ., ., 4, 1, 9, ., ., 5 });board.push_back({ ., ., ., ., 8, ., ., 7, 9 });Solution s1;vectorvectorchar result s1.solveSudoku(board);for (vectorvectorchar::iterator it result.begin(); it ! result.end(); it) {for (vectorchar::iterator jt (*it).begin(); jt ! (*it).end(); jt) {cout *jt ;}cout endl;}system(pause);return 0; }end
http://www.zqtcl.cn/news/368130/

相关文章:

  • c#做交易网站taxonomy wordpress
  • 统一门户网站开发员给我用织梦做的网站
  • 网站上有声的文章是怎么做的深圳市住房和建设局网站和市住宅租赁管理服务中心
  • 如何对网站进行爬虫页面设计存在的问题
  • 知名网站建设加盟合作企业邮箱如何登录
  • asp net mvc做网站软文推广是什么
  • 张家口住房和城乡建设厅网站如何做点击赚钱的网站
  • 网站在建设中无法访问贵州碧江区住房和城乡建设局网站
  • 营销类网站 英文东莞正规的免费网站优化
  • 柳州网站推广最好的公司百度seo优化培训
  • 哈尔滨门户网站建站哪个网站做农产品
  • 网站行业关键词如何建设网站
  • wordpress插件目录504wordpress访问优化插件
  • 固定ip做网站网页源码提取工具
  • php网站模板源码下载公司网络营销推广软件
  • 免费电子版个人简历模板温州快速排名优化
  • 网站修改titlewordpress显示icp备案
  • 中国国际贸易单一窗口登录南京专业网站优化公司
  • 手机网站建设合同wordpress案例分析
  • 深圳做网站什么公司好广州电商小程序开发
  • 郑州高新区做网站的公司如何欣赏网站
  • 网站做维恩图做网站的公司杭州
  • 柳州公司网站制作公司wordpress 网店
  • 网站增加栏目费用在网站开发中如何设置登录
  • 怎样用php做网站百度推广联系人
  • 怎么建立手机网站如何申请公司域名
  • 营销型网站怎么收费邓州企业网站
  • 北京建设官方网站邢台网站维护
  • 新余网站制作网站开发工资咋样
  • 襄阳网站建设外包自己做一个网站