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

【力扣hot100题】(061)N皇后

有难度但不多。

想法是使用unordered_set记录每一行和每一条斜线上是否已经存在Q,然后使用回溯即可。

class Solution {
public:
    vector<vector<string>> result;
    vector<string> r;
    int n;
    unordered_set<int> column;
    unordered_set<int> leftslash;
    unordered_set<int> rightslash;
    void backtracking(int row){
        if(row==n){
            result.push_back(r);
            return;
        }
        string s;
        for(int i=0;i<n;i++){
            if(column.find(i)==column.end()&&leftslash.find(i-row)==leftslash.end()&&rightslash.find(i+row)==rightslash.end()){
                column.insert(i);
                leftslash.insert(i-row);
                rightslash.insert(i+row);
                string ss=s+'Q';
                ss.append(n-i-1,'.');
                r.push_back(ss);
                backtracking(row+1);
                r.pop_back();
                column.erase(i);
                leftslash.erase(i-row);
                rightslash.erase(i+row);
            }
            s+='.';
        }
    }
    vector<vector<string>> solveNQueens(int n){
        this->n=n;
        backtracking(0);
        return result;
    }
};

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

相关文章:

  • 修改maya小部件操作器(manipulator,那个带有箭头和圆环的小部件坐标轴)
  • R语言——绘制生命曲线图(细胞因子IL5)
  • 【力扣hot100题】(060)分割回文串
  • PyTorch 深度学习 || 7. Unet | Ch7.1 Unet 框架
  • 【学习笔记17】Windows环境下安装RabbitMQ
  • 云服务器数据安全实践:基于 Rsync + 宝塔计划任务构建全站自动备份系统
  • Nginx 常见面试题
  • MySQL——DQL的单表查询
  • Kafka 的选举机制
  • Python高级爬虫之JS逆向+安卓逆向1.1节-搭建Python开发环境
  • Leetcode 311 Sparse Matrix Multiplication 稀疏矩阵相乘
  • [特殊字符] LeetCode 1123. 最深叶节点的最近公共祖先 | DFS后序遍历题解
  • C# System.Text.Json 中 JsonConverter 使用详解
  • 智能指针【C++】
  • Android Compose入门和基本使用
  • 基于SSM的购物商城系统
  • Linux的: /proc/sys/net/ipv6/conf/ 笔记250405
  • 嵌入式学习笔记——大小端及跳转到绝对地址
  • labelme json 标签转yolo txt【记录】
  • 在Spring Boot中实现图片上传和修改
  • STM32看门狗原理与应用详解:独立看门狗 vs 窗口看门狗(上) | 零基础入门STM32第九十四步
  • 设计模式:为什么使用模板设计模式(不相同的步骤进行抽取,使用不同的子类实现)减少重复代码,让代码更好维护。
  • C++语言的网络编程
  • 第一章:服务架构演进史_《凤凰架构:构建可靠的大型分布式系统》_Notes
  • 英文单词记忆系统:基于PyQt5与DeepSeek大模型的智能学习工具
  • UDP学习笔记(四)UDP 为什么大小不能超过 64KB?
  • 高级:性能优化面试题深度剖析
  • Node.js局部生效的中间件
  • pyTorch框架-迁移学习-实现四种天气图片多分类问题
  • 【Windows批处理】命令入门详解