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

力扣-回溯-37 解数独

思路

双层递归,而且在传递参数使用&的好处是不用在复制一次样本,浪费时间

class Solution {
public:
    bool isVaild(vector<vector<char>> &board, int row, int cal, char val){
        for(int i = 0; i < 9;i++){
            if(board[row][i] == val) return false;
        }
        for(int i = 0; i < 9;i++){
            if(board[i][cal] == val) return false;
        }
        int startRow = (row/3) * 3;
        int startCal = (cal/3) * 3;
        for(int i = startRow; i < startRow+3;i++){
            for(int j = startCal; j < startCal+3; j++ ){
                if(board[i][j] == val) return false;
            }
        }

        return true;
    }

    bool backTracking(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] == '.'){
                    for(char k = '1'; k <= '9'; k++){
                        if( isVaild(board, i, j, k)){
                            board[i][j] = k;
                            if(backTracking(board)) return true;
                            board[i][j] = '.';
                        }
                    }
                    return false;
                }
            }
        }
        
        return true;
    }
    void solveSudoku(vector<vector<char>>& board) {
        backTracking(board);
    }
};

http://www.dtcms.com/a/32779.html

相关文章:

  • JavaScript异步编程方式多,区别是什么?
  • 有时候通过无线上网,有线共享局域网通过该有线为网关进行上网,设置指定的网关IP信息
  • UE5 编辑器辅助/加强 插件搜集
  • C#使用Semantic Kernel:接入本地deepseek-r1
  • 【多模态处理篇五】【DeepSeek文档解析:PDF/Word智能处理引擎】
  • C#初级教程(6)——函数:从基础到实践
  • 后端之路——阿里云OSS云存储
  • 【JavaScript进阶】构造函数数据常用函数
  • 【AI】openEuler 22.03 LTS SP4安装 docker NVIDIA Container Toolkit
  • Java集合框架全解析:从LinkedHashMap到TreeMap与HashSet面试题实战
  • 微信小程序修改个人信息头像(uniapp开发)
  • 机器学习实战(11):时间序列预测——循环神经网络(RNN)与 LSTM
  • NVIDIA A100 SXM4与NVIDIA A100 PCIe版本区别深度对比:架构、性能与场景解析
  • einops测试
  • C#导出dataGridView数据
  • 【Node.js】express框架
  • 【论文带读(1)】《End-to-End Object Detection with Transformers》论文超详细带读 + 翻译
  • 人工智能(AI)的不同维度分类
  • 【知识】Nginx反向代理路径到指定端口,很全面
  • 3D模型在线转换工具:轻松实现3DM转OBJ
  • 深度学习的集装箱箱号OCR识别技术,识别率99.9%
  • mysql之B+ 树索引 (InnoDB 存储引擎)机制
  • Eclipse2024中文汉化教程(图文版)
  • Kafka客户端连接服务端异常 Can‘t resolve address: VM-12-16-centos:9092
  • 深入理解设计模式之外观模式
  • 【Java】Java 常用核心类篇 —— 时间-日期API(上)
  • 个人环境配置--安装记录
  • 怎麼利用靜態ISP住宅代理在指紋流覽器中管理社媒帳號?
  • uniapp微信小程序PC端选择文件(无法使用wx.chooseMessageFile问题)
  • Linux 常用命令最全总结大全【推荐收藏】