当前位置: 首页 > 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;
    }
};

相关文章:

  • 修改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中实现图片上传和修改
  • 推广网站优化怎么做/汕头seo公司
  • 东营网格通二维码/seo视频教程汇总
  • 如何评价一个网站做的是否好/工业设计公司
  • 网站建设推广咨询平台/济南seo的排名优化
  • 个人网站的制作步骤/成人本科报考官网
  • 网站维护具体怎么做呀/长沙网络推广公司