摘要:
654.最大二叉树 题目链接 文章讲解 视频讲解 class Solution { public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { return inorderTraversal(nums, 0, nums.size 阅读全文
摘要:
513.找树左下角的值 题目链接 文章讲解 视频讲解 class Solution { public: int maxDepth = INT_MIN; int result; int findBottomLeftValue(TreeNode* root) { int depth = 0; trave 阅读全文
摘要:
110.平衡二叉树 题目链接 文章讲解 视频讲解 定义:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1 递归法(后序) class Solution { public: bool isBalanced(TreeNode* root) { if(root == nullptr) return 阅读全文
摘要:
104.二叉树的最大深度 题目链接 文章讲解 视频讲解 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数(前序遍历) 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数(后序遍历) 递归法 // 二叉树的最大高度和最大深度相同,可以求最大高度来表示最大深度 class Solut 阅读全文
摘要:
102.二叉树的层序遍历 题目链接 文章讲解 视频讲解 思路:栈对应深度优先遍历,而广度优先遍历使用的是队列 class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> a 阅读全文
摘要:
递归法 文章讲解 视频讲解 递归三要素: 1 确定递归函数的参数和返回值 2 确定终止条件 3 确定单层递归的逻辑 前序遍历 题目链接 递归的参数和返回值:传入当前节点和保存结果集的数组,不需要返回值 终止条件:当前节点为空时 单层递归逻辑:保存当前节点的值到结果集中 class Solution 阅读全文
摘要:
239. 滑动窗口最大值 题目链接 文章讲解 视频讲解 思路:使用单调队列,来维护有可能成为最大值的元素; 当窗口向右滑动时,判断移除的元素是否是队首元素如果是的话出队; 新加入的元素依次和队尾元素作比较,如果大于队尾元素则将队尾元素循环出队,这样可以保证队列中始终维持一个窗口中当前的最大值,和将来 阅读全文
摘要:
string 介绍 c++支持两种类型的字符串,一以NULL结尾的c风格字符串;二string类型的字符串 头文件 string是basic_string类模板使用char特化的类型 #include <string> typedef basic_string<char, char_traits<c 阅读全文
摘要:
20. 有效的括号 题目链接 文章讲解 视频讲解 思路:遍历字符串,如果栈不为空,则进行匹配 如果匹配则出栈,否则入栈 如果栈为空,直接入栈 遍历结束后栈为空则说明全部匹配,否则没有全部匹配 class Solution { public: bool isValid(string s) { stac 阅读全文
摘要:
stack 介绍 先进后出的适配器 头文件 #include <stack> template <class Type, class Container = deque <type>> class stack 初始化 stack(); // 使用容器来构造一个栈,并保持原容器中的元素顺序 expli 阅读全文