
搜索与回溯
文章平均质量分 63
本专栏记录了博主刷过的搜索与回溯相关题目,便于日后复习和巩固
Shallow_Carl
Never Give Up!
展开
-
N皇后问题和解数独
问题描述n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的n皇后问题 的解决方案。每一种解法包含一个不同的n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两个不同的解法。...原创 2022-01-26 18:02:11 · 286 阅读 · 0 评论 -
排列(元素重复和不重复情况)--回溯算法
题目描述输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8思路回溯三部曲:1)确定递归函数的参数排列问题需要used数组.2)递归终止的条件叶子节点就是收割结果的地方,终止判断条件if(nums.size()==path.si.原创 2022-01-26 14:16:21 · 1467 阅读 · 0 评论 -
二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完成转换操作.原创 2022-01-09 15:29:24 · 453 阅读 · 0 评论 -
矩阵中的路径
前言这道题我折腾了一个半~两个小时,终于AC了,特此纪念.题目描述给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。示例 1:输入:board = .原创 2022-01-08 17:32:19 · 112 阅读 · 0 评论 -
机器人的运动范围
思路按照DFS模板来套,递归三部曲:返回值:NULL中间逻辑:访问位置为true,数量统计count++返回逻辑:如果当前的和val>k或者当前位已经访问过了,直接返回.代码class Solution {public: int a[4] = { -1,1,0,0 }; //行,上下左右 int b[4] = { 0,0,-1,1 }; //列,上下左右 int count=0; int sum(int i, int j) {..原创 2022-01-08 17:18:15 · 440 阅读 · 0 评论 -
DFS深度优先搜索模板
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言DFS是一种搜索可行解方式的方式,通常用于求"所有,全部..等一类问题",今天在写深度搜索问题时问题屡屡出现,搞得我怀疑自己以前学的到底有菜鸡......特此写下一篇手记,供大家参考,也供自己日后复习.一、DFS的例题形式?这里贴出最经典的一类问题,下面给出两道LeetCode原题:①给你一个由'1'.原创 2021-11-26 16:17:45 · 206 阅读 · 0 评论