![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
广搜
cc 提升ing 变优秀ing
有需要搜广推nlp实习生的部门吗?
展开
-
leetcode:1030. 距离顺序排列矩阵单元格(简单,排序,广搜)
题目: 分析: 看完题目觉得是广搜,但是总感觉应该是有特殊的,没想到直接是如下这个图: 看下图,每个点都对应着四个点,每一次一条边上的和相等。 代码: 一直出错,先放弃了~ 方法二:也可以当做排序来做,python3的排序如下: class Solution: def allCellsDistOrder(self, R: int, C: int, r0: int, c0: int) -> List[List[int]]: ret = [(i, j) for i in ra原创 2021-03-22 10:05:43 · 135 阅读 · 3 评论 -
leetcode:433. 最小基因变化(图,BFS)
题目: 分析: 很容易想到是构建一个无向图。 代码: class Solution { public: vector<vector<int> > vv; bool f(string s1,string s2) { int c=0; for(int i=0;i<s1.size();i++) { if(s1[i]!=s2[i]) c++; } if(c原创 2020-12-04 09:27:01 · 101 阅读 · 0 评论 -
洛谷:P2895 [USACO08FEB]Meteor Shower S(bfs,)
题目: 分析:与时间有关的变化图,没有任何的思路。只能想到暴力搜: 看题解,自己思维的错误点在于:即使有时间点的影响,也不可能重复到达其他的点。 代码: #include<bits/stdc++.h> using namespace std; int A[605][605]; int D1[5]={0,-1,1,0,0}; int D2[5]={0,0,0,-1,1}; void f(int x,int y,int c) { if(x<0) return; if(y<0) r原创 2020-08-26 17:42:09 · 283 阅读 · 0 评论 -
洛谷:P1443 马的遍历(普及/提高-,bfs)
题目: 分析:pair 代码: #include<bits/stdc++.h> using namespace std; int A[405][405]; int B1[8]={-1,1,1,-1,2,2,-2,-2}; int B2[8]={-2,2,-2,2,1,-1,1,-1}; int main() { int a1,a2,a3,a4; cin>>a1>>a2>>a3>>a4; memset(A,-1,sizeof(A)); A[原创 2020-08-25 10:13:45 · 247 阅读 · 0 评论 -
leetcode:1091. 二进制矩阵中的最短路径(广搜)
题目: 分析: 典型广搜, vector 可作为队列的内容。 代码: int main() { vector<int> t1; t1.push_back(0);t1.push_back(0);t1.push_back(0); vector<int> t2; t2.push_back(1);t2.push_back(1);t2.push_back(0); vect...原创 2020-03-04 23:31:10 · 176 阅读 · 0 评论 -
leetcode:310. 最小高度树(广搜)
题目: 分析: 没思路,直接盗取大佬的吧、 首先明确,结果的个数不是1就是2. 每次都把叶子节点全部去掉,那么相当于最大高度少了1,层层拨开,那么最后剩的一个或者两个就是结果了。 用矩阵表示树吧,这样,只遍历所在行即可,只有1个1个是当前的叶子节点。 代码(超时了): int n; vector<vector<int> > e; //矩阵表示树 0表示不相邻 ...原创 2020-02-25 16:14:10 · 139 阅读 · 0 评论 -
leetcode:994. 腐烂的橘子(广搜)
题目: 分析: 这显然是一道多源的搜索题目。我习惯用广搜。 代码: void f(vector<vector<int> > &n,vector<vector<int> > &g,int x,int y,int dep,int c) { if(x==-1||y==-1||x==n.size()||y==n[0].size()) re...原创 2020-02-25 11:11:41 · 145 阅读 · 0 评论 -
leetcode:199. 二叉树的右视图(广搜)
题目: 分析: 不用刻意找每行最后一个,引入一个变量即可。 代码: TreeNode* root; queue<TreeNode*> q1; vector<int> v; if(root==NULL) return v; q1.push(root); while(!q1.empty()){ queue<TreeNode*> q2; ...原创 2020-02-24 23:48:39 · 88 阅读 · 0 评论 -
leetcode:107. 二叉树的层次遍历 II
题目: 分析: 正着来,最后使用 逆转容器中的元素的函数—reverse() 代码: queue<TreeNode*> q1; vector<vector<int> > vv; if(root==NULL) return vv; q1.push(root); while(!q1.empty()){ queue<TreeNode*> q2...原创 2020-02-24 22:03:24 · 86 阅读 · 0 评论 -
leetcode:102. 二叉树的层次遍历(广搜)
题目: 分析: 两层while的队列空判断.很好 代码: int main() { TreeNode* root; queue<TreeNode*> q1; vector<vector<int> > vv; if(root==NULL) return vv; q1.push(root); while(!q1.empty()){ queue<...原创 2020-02-24 21:53:09 · 144 阅读 · 0 评论