DFS
Saulty
这个作者很懒,什么都没留下…
展开
-
LeetCode 110. 平衡二叉树
LeetCode 110. 平衡二叉树题目题解代码题目题解自顶向下:判断左右子树的高度差和左右子树是否为平衡树自底向上:判断左右子树的高度差,进行剪枝操作代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr),原创 2021-08-15 11:20:32 · 2078 阅读 · 1 评论 -
LeetCode 797. 所有可能的路径
LeetCode 797. 所有可能的路径题目题解代码题目题解此题用dfs比较有优势,可以找出所有路径dfs+回溯代码class Solution {public: void dfs(vector<vector<int>>& graph,int i,vector<int>& ans,vector<vector<int>>& res){ int n=graph.size();原创 2021-08-15 11:15:22 · 190 阅读 · 0 评论 -
LeetCode 130. 被围绕的区域
LeetCode 130. 被围绕的区域题目题解代码题目题解题意:与边界相连的‘O’不进行填充,内部的‘O’进行填充可以将边界以及相连的‘O’找出,并替换为其他字母,最后统一进行改变代码// class Solution {// public:// int xx[4]={0,0,1,-1};// int yy[4]={1,-1,0,0};// void solve(vector<vector<char>>& board) {原创 2021-08-14 17:40:34 · 137 阅读 · 0 评论 -
LeetCode 1091. 二进制矩阵中的最短路径
LeetCode 1091. 二进制矩阵中的最短路径题目题解代码题目题解最短路径一般考虑用广度优先遍历深度优先遍历考虑所有的情况,对值进行更新,时间复杂度高考虑dfs的基础原理,规范代码书写,对于矩阵上下左右,或者8邻域的遍历可采取for循环形式;此外,此题中res++与res+1的含义进行反思代码// class Solution {// public:// int min_res=1000000000;//1e9// int xx[8]={1,-1,1,-1,1原创 2021-08-14 17:35:58 · 267 阅读 · 0 评论 -
LeetCode 572. 另一棵树的子树
LeetCode 572. 另一棵树的子树题目题解代码题目题解注意是所有后代节点不是包含关系代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNo原创 2021-08-13 13:43:39 · 76 阅读 · 0 评论 -
LeetCode 117. 填充每个节点的下一个右侧节点指针 II
LeetCode 117. 填充每个节点的下一个右侧节点指针 II题目题解代码题目题解二叉树层次遍历用变量n记录队列的长度代码/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* next; Node() : val(0), left(NULL), right(NULL), next(NULL) {} Node(i原创 2021-08-13 13:43:11 · 57 阅读 · 0 评论 -
LeetCode 547. 省份数量
LeetCode 547. 省份数量题目题解代码题目题解图联通问题相当于一维的数组来存储各个点而二维数组每行代表对应点与其他点之间的关系代码class Solution {public: int findCircleNum(vector<vector<int>>& isConnected) { int m=isConnected.size(); int n=isConnected[0].size();原创 2021-08-12 12:48:50 · 54 阅读 · 0 评论 -
LeetCode 200. 岛屿数量
LeetCode 200. 岛屿数量题目题解代码题目题解深度优先+递归广度优先+队列代码// class Solution {// public:// void dfs(vector<vector<char>>& grid,int i,int j){// int m=grid.size();// int n=grid[0].size();// grid[i][j]='0';//原创 2021-08-12 12:48:35 · 58 阅读 · 0 评论 -
LeetCode 653. 两数之和 IV - 输入 BST
LeetCode 653. 两数之和 IV - 输入 BST题目题解代码题目题解广度优先遍历+哈希表代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * Tr原创 2021-07-31 12:51:07 · 51 阅读 · 0 评论 -
LeetCode 98. 验证二叉搜索树
LeetCode 98. 验证二叉搜索树题目题解代码题目题解递归设立lower,upper两个临界值,来判断该节点位置是否正确中序遍历BST根据其性质,中序遍历获得的数组应单调增代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0),原创 2021-07-31 12:50:07 · 60 阅读 · 0 评论 -
LeetCode 112. 路径总和
LeetCode 112. 路径总和题目题解代码题目题解递归+深度优先遍历广度优先遍历代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode原创 2021-07-29 13:24:01 · 51 阅读 · 0 评论 -
LeetCode 226. 翻转二叉树
LeetCode 226. 翻转二叉树题目题解代码题目题解递归,深度优先遍历广度优先遍历代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNod原创 2021-07-29 13:23:46 · 42 阅读 · 0 评论 -
LeetCode 617. 合并二叉树
LeetCode 617. 合并二叉树题目题解代码题目给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:输入:Tree 1 Tree 21 2/ \ / \3原创 2021-07-11 14:45:18 · 58 阅读 · 0 评论 -
LeetCode 695. 岛屿的最大面积
LeetCode 695. 岛屿的最大面积题目题解代码题目给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,原创 2021-07-10 12:42:24 · 73 阅读 · 0 评论 -
LeetCode 733. 图像渲染
LeetCode 3. 无重复字符的最长子串题目题解代码题目给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。原创 2021-07-10 12:38:43 · 77 阅读 · 1 评论