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

每日一题——37.解数独

题目链接:37. 解数独 - 力扣(LeetCode)

代码:
 

class Solution {
public:
    bool isvalied(int i,int j,char k,vector<vector<char>>board)
    {
        //行合法
        for(int row = 0;row < board.size();row++)
        {
            if(board[row][j] == k) return false;
        }

        //列合法
        for(int col = 0;col < board[0].size();col++)
        {
            if(board[i][col] == k) return false;
        }

        //九宫格合法
        int startrow = (i/3) * 3;
        int startcol = (j/3) * 3;
        for(int row = startrow;row < startrow+3;row++)
        {
            for(int col = startcol;col < startcol+3;col++)
            {
                if(board[row][col] == k) return false;
            }
        }
        return true;
    }
    bool traversal(vector<vector<char>>& board)
    {
        for(int i = 0; i < board.size();i++)
        {
            for(int j = 0; j < board[0].size();j++)
            {
                if(board[i][j] != '.') continue;
                for(char k = '1';k <= '9';k++)
                {
                    if(isvalied(i,j,k,board)) 
                    {
                        board[i][j] = k;
                        if(traversal(board)) return true;
                        board[i][j] = '.';
                    }
                }
                return false;
            }
        }
        return true; //有必要吗
    }
    void solveSudoku(vector<vector<char>>& board) {
        traversal(board);
    }
};

回溯三部曲:

直接引用传入board ,修改board的数值

返回return bool值,判断当前路劲是否合法

这里我纠结的问题是为什么前面return false和return true的情况都有了,结尾还要再返回return true

--在所有棋盘都填满了的情况下,就不会在走到后面的路劲判断true和false的情况了,这时棋盘都满了,则是找到了合法解,在最后的部分就return true;;;;

;;;;;;

相关文章:

  • 23. AI-大语言模型-DeepSeek赋能开发-Spring AI集成
  • 初步安装和使用vant组件库,使用css变量定制vant主题样式 ,小程序的API Promise化,调用promise化之API
  • Lineageos 22.1(Android 15) 开机向导制作
  • 【0407】Postgres内核 Condition variables (ConditionVariable)设计机制 ①
  • HDLBits ——> Building Larger Circuits
  • Windows桌面系统管理5:Windows 10操作系统注册表
  • ubuntu源码方式安装TensorRT-LLM推理框架(超详细)
  • 亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!
  • idea连接gitee(使用idea远程兼容gitee)
  • Redis7——基础篇(五)
  • Docker 部署 ollama + DeepSeek
  • buildctl配置镜像加速
  • ES6中Object.defineProperty 的详细用法和使用场景以及例子
  • 在 C++23 中使用智能指针进行现代内存管理 – 第 1 部分
  • MyBatisPlus学习
  • 【llm post-training】从Loss Function设计上看LLM SFT和RL的区别和联系
  • 【练习】【二分】力扣热题100 35. 搜索插入位置]
  • Markdown 常用语法及示例
  • CSS中块级格式化上下文(BFC)详解
  • 【c语言初阶】函数递归
  • 国台办:台湾自古属于中国,历史经纬清晰,法理事实清楚
  • 媒体:“西北大学副校长范代娣成陕西首富”系乌龙,但她的人生如同开挂
  • 因操纵乙烯价格再遭诉讼,科莱恩等四家企业被陶氏索赔60亿
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 脑血管支架:救命神器还是定时炸弹?听听医生的大实话
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心