![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
回溯算法
北大人工智能yjt
像写自然语言一样编码.
展开
-
leetcode133_克隆图_回溯
一. 可以参考leetcode138_复制带随机指针的链表,https://blog.csdn.net/qieyuan4083/article/details/104332467 二. 回溯就是遍历, 运用DFS和BFS方法. 1. DFS. /* // Definition for a Node. class Node { public: int val; vector...原创 2020-02-15 20:14:14 · 190 阅读 · 0 评论 -
leetcode138_复制带随机指针的链表
一. 回溯 1. 当random访问了一个新的节点,需要创建它, 否则直接返回旧的指针就好. 2. 特别注意,哈希表中传入的都是指针,所以一定会是Node*类型,而不是Node. /* // Definition for a Node. class Node { public: int val; Node* next; Node* random; ...原创 2020-02-15 19:04:19 · 177 阅读 · 0 评论 -
leetcode130_被围绕的区域
一. 这一题也是回溯算法,因为对题目理解不太清楚,所以就直接看大神解法了. 二. 参考 作者:Ac_pipe 链接:https://leetcode-cn.com/problems/surrounded-regions/solution/bfsdi-gui-dfsfei-di-gui-dfsbing-cha-ji-by-ac_pipe/ 思路:1. 这道题我们拿到基本就可以确定是图的 d...原创 2019-10-03 10:38:08 · 108 阅读 · 0 评论 -
leetcode77_组合
1. 首先放一下自己写的代码,主要思想是回溯,很容易理解,但是时间惨不忍睹......... class Solution { public: vector<vector<int>> res; void backtrace(int i, vector<int> tmp, int count, int k, int n) { if (count ==...原创 2019-09-28 10:41:14 · 117 阅读 · 0 评论 -
leetcode39_组合总和_继续回溯
一. 这题一开始想肯定回溯法,一开始想了个顺其自然的思路,直接看代码能理解,结果重复了. //没有去重,报错 class Solution { public: vector<vector<int>> res; void backtrace(int sum, vector<int> tmp, int target, vector<int>...原创 2019-09-28 14:38:10 · 75 阅读 · 0 评论 -
leetcode78_子集_趁热打铁回溯算法
一. 话不多说,参考前面大神思路模板. #include <iostream> #include <vector> using namespace std; class Solution { public: vector<vector<int>> res; void backtrace(int start, vector<int&g...原创 2019-09-28 17:05:09 · 120 阅读 · 0 评论 -
leetcode79_单词搜索_二维平面回溯法
1. 参考题解 作者:liweiwei1419 链接:https://leetcode-cn.com/problems/word-search/solution/zai-er-wei-ping-mian-shang-shi-yong-hui-su-fa-pyth/ 2.这是一个使用回溯算法解决的问题,涉及的知识点有 DFS 和状态重置。 3.说明:1、偏移量数组在二维平面内是经常使用...原创 2019-10-01 18:56:47 · 166 阅读 · 0 评论 -
leetcode200_岛屿数量_和130题思路一样_趁热打铁
1. 有了130题的思路就好写多了,放上自己写的代码. 2. 没有用visited记录使用过的值,而是改用不同的符号代替,这是借鉴130题的思路. 3. 搜索的时候四个方向,注意学习. 4. 此题不需要回溯,因为要把所有的1都标记为岛屿,不像79题单词回溯时搜索单词不对要回溯. class Solution { public: void dfs(int i, int j, ve...原创 2019-10-03 11:03:01 · 207 阅读 · 0 评论 -
leetcode78_子集
一. 这题又是典型的回溯了,. 1. 回溯法的回溯函数内部很多状态都要定义为当前, 这次的中间数组tmp也不例外. 2. 很多都要定义一个start变量,从当前元素之后遍历,防止重复. class Solution { public: vector<vector<int>> res; void backtrace(int start, vector<...原创 2019-10-06 21:50:41 · 64 阅读 · 0 评论