DFS_BFS
Leetcode按tag练题
BNDSllx
算法自媒体公众号:GTAlgotirhm,欢迎关注转发!
https://mp.weixin.qq.com/s?__biz=Mzg3NzMzNzU1MA==&mid=2247484346&idx=3&sn=7a3cf5f25cb8df7a958842369b4faca4&chksm=cf25cd1bf852440d4d68b75b023d547b568c06d830f0f0fff50b216d73fa3bd848ace6e7cc28&token=1029780947&lang=zh_CN#rd
展开
-
Leetcode 752. 打开转盘锁 题解
题目链接:https://leetcode-cn.com/problems/open-the-lock/字符串转换成0-10000内的数字记录状态。写两个函数next和last得到变换后的状态。deadend中的小可爱们标记状态不可访问即可。代码如下:class Solution {public: bool vis[10000]; int a[4]; int trans(string s) { int res = 0; for(int原创 2020-05-26 13:51:44 · 188 阅读 · 0 评论 -
Leetcode 994. 腐烂的橘子 题解
题目链接:https://leetcode-cn.com/problems/rotting-oranges/一分钟写完系列,可以直接把二维坐标一维化代码如下:class Solution {public: bool inmap(int xx, int yy, int n, int m) { return xx >= 0 && xx < n && yy >= 0 && yy < m; }原创 2020-05-26 10:54:15 · 192 阅读 · 0 评论 -
Leetcode 面试题 04.03. 特定深度节点链表 题解
题目链接:https://leetcode-cn.com/problems/list-of-depth-lcci/一年半没有写广搜了,重新上手的第一道题还一次过了就很nice由于要不同深度分类,所以抛开传统的while(!q.empty()),还需要在里面每次计算q.size(),作为这一层的操作次数。由于每次要把当前遍历节点的左右子树继续push到队列中,所以队列要用TreeNode*型,不然只存int型的值不好判断左右子树。代码如下:/** * Definition for a binar原创 2020-05-24 00:26:55 · 202 阅读 · 0 评论 -
Leetcode 980. 不同路径 III 题解
题目链接:https://leetcode-cn.com/problems/unique-paths-iii/典型题找路径数或者最长路径用深搜,找最短路径用宽搜由于要求每个点都要经历过一次,所以用cnt计算出所有无障碍空格数,然后每次深搜时都递减。求路径数,所以遍历记录数组vis要时刻回溯,即当前状态下标记为true,深搜结束后再标记回false,以便于下一次从不同路径仍能到达该点代码如下:class Solution {public: int res = 0; bool原创 2020-05-22 11:21:44 · 360 阅读 · 0 评论 -
Leetcode 886. 可能的二分法 题解
题目链接:https://leetcode-cn.com/problems/possible-bipartition/最近学习的二分染色,开始 color 数组初始化为 -1,深搜打进去,每次的 dislike 对象若没染色,则染色为当前颜色的对立颜色(0、1),并继续深搜,否则若跟当前颜色相同,说明有错误,return false即可代码如下:class Solution {public: bool dfs(int pos, vector<int>& color,原创 2020-05-20 18:24:19 · 290 阅读 · 0 评论 -
Leetcode 1315. 祖父节点值为偶数的节点和 题解
题目链接:https://leetcode-cn.com/problems/sum-of-nodes-with-even-valued-grandparent/第一眼看到就想到用两个bool值参数。因为一般的DFS都是一个参数标记状态,这次要考虑祖父节点,所以用两个参数 t1 和 t2,更新如下:若当前 t2 为 true,说明其祖父节点为偶数,res += root->val,更新t2 = false若当前 t1 为 true,说明其父节点为偶数,标记t2 = true, t1 = fal原创 2020-05-18 10:45:40 · 182 阅读 · 0 评论 -
Leetcode 841. 钥匙和房间 题解
题目链接:https://leetcode-cn.com/problems/keys-and-rooms/用栈更好搞,只要有钥匙且没被遍历过的房间就入栈,每次取栈顶元素继续遍历。代码如下:class Solution {public: bool canVisitAllRooms(vector<vector<int>>& rooms) { stack<int> s; bool vis[rooms.size()];原创 2020-05-18 10:25:10 · 183 阅读 · 0 评论