Leetcode51

链接:力扣 。

题目:

n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。

每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。

示例1:

输入:n = 4
输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
解释:4 皇后问题存在两个不同的解法。

示例2:

输入:n = 1
输出:[["Q"]]

思路:

经典问题N皇后,存在多种解法。这里采用全排列的思路来解决N皇后问题,思路可参考 《算法笔记》读书记录DAY_3_索多玛底层魔怔人的博客-CSDN博客 。

参考代码:

class Solution {
public:vector<vector<string>> result;bool hash[10] = {false};void dfs(int p[], int &n, int index) {if (index == n) {vector<string> tmp;for (int i = 0; i < n; i++) {string str(n, '.');str[p[i]] = 'Q';tmp.push_back(str);}result.push_back(tmp);return;}for (int i = 0; i < n; i++) {if (hash[i] == false) {bool flag = true;for (int pre = 0; pre < index; pre++) {if (index - pre == abs(i - p[pre])) {flag = false;break;}}if (flag) {p[index] = i;hash[i] = true;dfs(p, n, index + 1);hash[i] = false;}}}}vector<vector<string>> solveNQueens(int n) {int *p = new int[n];dfs(p, n, 0);return result;}
};

力扣刷题 DAY_73 回溯相关推荐

  1. 力扣刷题记录-回溯算法相关题目

    首先介绍一下回溯算法 回溯通常在递归函数中体现,本质也是一种暴力的搜索方法,但可以解决一些用for循环暴力解决不了的问题,其应用有: 1.组合问题: 例:1 2 3 4这些数中找出组合为2的组合,有1 ...

  2. 力扣刷题pdf(java版本,内含暗黑版和光明版),都在这里了

    BAT大佬力扣刷题pdf,都在这里了! ​相信很多小伙伴刷题的时候面对力扣上近两千道题目,感觉无从下手! 我找了很久,今天终于让找到了Java版leetcode算法题解笔记,强烈建议先按照本篇介绍pd ...

  3. 教你创建电脑、手机同步的markdown云笔记--力扣刷题力荐!

    开篇先致歉 其他不谈,开篇必须先给各位读者道个歉,年后工作上比较忙,加上最近闲暇的时间都用来在力扣上刷算法题了,导致公众号断更有些严重啊.再加上年后将健身减重提上了日程,时间上就更显的捉襟见肘了. 不 ...

  4. 《剑指Offer》力扣刷题笔记(03-10)

    <剑指Offer>力扣刷题笔记(03-10) 最近确实有点闲,想在进组搬砖之前找点有意义的事干,于是,就开始刷<剑指Offer>.<程序员面试金典>等书上的题目,也 ...

  5. 力扣刷题之二叉树的层序遍历

                                                      Welcome to you, 每日一刷系列 二叉树的层序遍历 二叉树的层序遍历II 二叉树的右视图 ...

  6. 『力扣刷题』5275_找出井字棋的获胜者 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5275_找出井字棋的获胜者 * 5275. 找出井字棋的获胜者 显示英文描述* 用户通过次数0* 用户尝试次数0* ...

  7. 『力扣刷题』5276_不浪费原料的汉堡制作方案 解题代码

    LeetCode-cn 力扣刷题 LeetCode-cn力扣刷题目录 165周赛 5276_不浪费原料的汉堡制作方案 * 5276. 不浪费原料的汉堡制作方案 显示英文描述* 用户通过次数212* 用 ...

  8. 『力扣刷题』5238_找出给定方程的正整数解 解题代码

    html: embed_local_images: true embed_svg: true offline: true toc: undefined print_background: false ...

  9. 力扣刷题全局变量WA,局部变量AC的问题

    力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...

  10. 力扣刷题-前k个高频元素

    力扣刷题-前k个高频元素 题目: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素.你可以按 任意顺序 返回答案. 示例 1: 输入: nums = [1,1,1,2 ...

最新文章

  1. 网络安全性——IPSEC(续思科设备实现)
  2. tkinter 笔记:创建输入框并显示结果 (莫烦python笔记)
  3. Vue 生命周期LIFECYCLE是8个吗?
  4. (转)Spring boot(一):入门篇
  5. ios手机怎么连接adb命令_没有 mac 的福音,windows 下对 ios 进行操作 (类似 android 的 adb 操作)...
  6. Android的广播接收器BroadcastReceiver
  7. 视频教程-SQLServer数据库实战视频课程-SQL Server
  8. 如何下载矢量电子地图
  9. 【转】美团O2O供应链系统架构设计解析
  10. Tables[0].Rows.count是什么意思
  11. 微信小程序 实现背景色渐变(css实现)
  12. 变分图自动编码器教程
  13. 二次元RPG游戏:Tap Fantasy
  14. 【学习打卡】GradCAM可解释性分析
  15. python 利用for 循环简便生成list
  16. gym 100543 CERC 2014 L Outer space invaders
  17. 高新技术企业人才引进困境与对策研究
  18. 软实力:十大调查研究咨询公司助力中国梦
  19. 罗马数字转整数-----c语言实现
  20. 因果推断(二)-Causal effect 因果效应推理

热门文章

  1. 英语3500词(四)workplace主题 (2022.1.16)
  2. 微信小程序自定义tabBar使用
  3. 开机提示grub可咋办啊
  4. Vulnhub_COFFEE ADDICTS: 1
  5. asp.net 各种小窍门
  6. 商汤科技面试——CV算法面经
  7. 360修复高危漏洞可以修复吗_怎么关闭360高危漏洞修复提醒?
  8. 老湿人----山河拱手,为君一笑
  9. java中explain什么意思_Java架构-面试前必须知道的MySQL命令【explain】
  10. 支付宝小程序登录PHP