![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dfs
巴巴多斯小魔
这个作者很懒,什么都没留下…
展开
-
leetcode 491. 递增子序列 (找出所有递增子序列 输出 并不能重复 dfs回溯)
题目class Solution {public: int n; vector<vector<int> >ans; vector<int>tmp; void dfs(vector<int>&a,int pos){ map<int,int>mp; for(int i=pos;i<n;++i){ if(!mp[a[i]]&&(!t原创 2021-02-14 21:50:39 · 149 阅读 · 0 评论 -
leetcode 679. 24 点游戏 (每次选出两个数+-*/)
题目比如3*(4+8/2) 就是(8/2+4)*3 每次选出来两个数本来有n个数,每次选出两个数+ - * / 得到一个数,算剩下的n-1个数是否可以算出24class Solution {#define eps 1e-6public: bool isZero(double x){return fabs(x)<=eps;} bool dfs(vector<double>nums){ int n=nums.size(); if原创 2020-12-24 11:19:45 · 135 阅读 · 0 评论 -
leetcode 46. 全排列 (dfs回溯枚举所有情况)
题目class Solution {public: int jc(int n){ int res=1; while(n!=1) res*=n,--n; return res; } int n; int vis[15],cnt; void dfs(int pos,vector<vector<int>>& ans){ if(pos==n+1) return;原创 2020-12-14 21:50:51 · 124 阅读 · 0 评论 -
leetcode 37. 解数独(回溯dfs)
题目class Solution {public: int row[9],col[9];//每一行,每一列的状态 vector<vector<int> >a;//(9,vector<int>(9,0)); int dfs(int x,int y){ if(x==9&&y==0) return 1; int vis[10];memset(vis,0,sizeof vis); for原创 2020-12-07 14:53:54 · 82 阅读 · 0 评论 -
leetcode 994. 腐烂的橘子(bfs模板。。)
题目class Solution {public: struct node{int x,y;}; int d[4][2]={-1,0,0,1,1,0,0,-1}; int n,m; int isok(int nx,int ny){return nx>=0&&nx<n&&ny>=0&&ny<m;} int orangesRotting(vector<vector<int>&g原创 2020-12-05 19:32:33 · 79 阅读 · 0 评论 -
leetcode 847. 访问所有节点的最短路径(连通图中访问所有节点需要的最小遍数 巨水bfs)
题目假如这是树,就好了,可以直接 树形dp。与树形背包dp 吃苹果和 让机器人去走很像。可惜这只是一个普通的联通图而已。class Solution {public: int vis[1<<13][13]; struct node{ int sta,x,step; }; int shortestPathLength(vector<vector<int>>& graph) { int n=gr原创 2020-12-05 15:01:23 · 333 阅读 · 0 评论 -
leetcode 773. 滑动谜题(模板bfs)
题目好像可以双搜?晚上再补。。我好烦啊,图书馆旁边那女的为什么画图要啪啪的放笔啊,无语。全世界都要听到它的笔1s掉下来一次。class Solution {typedef pair<int,int> pi;public: int p[6]={1,10,100,1000,10000,100000}; int hash(vector<vector<int>>& board){ return board[0][0]+board原创 2020-12-05 13:53:02 · 109 阅读 · 0 评论 -
leetcode 140. 单词拆分 II(dfs记忆化搜索)
题目空间复杂度: n*2^n时间复杂度:至少n *2^n.如下:f(n)=f(n-1)+sigma(dp[i].size())(1<=i<=n);//无语 用vector就tl,map就可以。。。class Solution {#define N 1000public: unordered_map<int,vector<string> >dp; //vector<string>dp[N]; unordered_set&l原创 2020-12-04 16:34:17 · 158 阅读 · 1 评论 -
leetcode 306. 累加数(给一个字符串,判断能不能分割成一个 fib序列 dfs纯暴力)
class Solution {public: //以[i,j-1],[j,k-1]这两个数开头 是否[i,n-1]是累加数 bool dfs(int i,int j,int k,string& num){ if(num[i]=='0'&&(j-i)>1) return false; if(k==num.size()) return true; string s1=num.substr(i,j-i),s2=nu.原创 2020-11-29 23:20:42 · 102 阅读 · 0 评论 -
leetcode 1240. 铺瓷砖(n*m矩形 n,m<=13 最少需要多少方形瓷砖 才能铺满 纯暴力dfs)
题目class Solution {#define INF 0x3f3f3f3fpublic: int n,m,ans; void dfs(vector<int>&sta,int used){//当前使用了used个方形瓷砖,铺的情况是sta. if(used>=ans) return; int i; for(i=0;i<n;++i) if(sta[i]!=(1<<m)-1) break;原创 2020-11-29 20:54:18 · 508 阅读 · 0 评论