05 2024 档案

摘要:513.找树左下角的值 题目链接 文章讲解 视频讲解 class Solution { public: int maxDepth = INT_MIN; int result; int findBottomLeftValue(TreeNode* root) { int depth = 0; trave 阅读全文
posted @ 2024-05-27 10:38 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:110.平衡二叉树 题目链接 文章讲解 视频讲解 定义:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1 递归法(后序) class Solution { public: bool isBalanced(TreeNode* root) { if(root == nullptr) return 阅读全文
posted @ 2024-05-24 13:55 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:104.二叉树的最大深度 题目链接 文章讲解 视频讲解 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数(前序遍历) 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数(后序遍历) 递归法 // 二叉树的最大高度和最大深度相同,可以求最大高度来表示最大深度 class Solut 阅读全文
posted @ 2024-05-24 13:08 深蓝von 阅读(7) 评论(0) 推荐(0) 编辑
摘要:102.二叉树的层序遍历 题目链接 文章讲解 视频讲解 思路:栈对应深度优先遍历,而广度优先遍历使用的是队列 class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> a 阅读全文
posted @ 2024-05-22 16:55 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:递归法 文章讲解 视频讲解 递归三要素: 1 确定递归函数的参数和返回值 2 确定终止条件 3 确定单层递归的逻辑 前序遍历 题目链接 递归的参数和返回值:传入当前节点和保存结果集的数组,不需要返回值 终止条件:当前节点为空时 单层递归逻辑:保存当前节点的值到结果集中 class Solution 阅读全文
posted @ 2024-05-22 12:21 深蓝von 阅读(8) 评论(0) 推荐(0) 编辑
摘要:239. 滑动窗口最大值 题目链接 文章讲解 视频讲解 思路:使用单调队列,来维护有可能成为最大值的元素; 当窗口向右滑动时,判断移除的元素是否是队首元素如果是的话出队; 新加入的元素依次和队尾元素作比较,如果大于队尾元素则将队尾元素循环出队,这样可以保证队列中始终维持一个窗口中当前的最大值,和将来 阅读全文
posted @ 2024-05-20 18:18 深蓝von 阅读(8) 评论(0) 推荐(0) 编辑
摘要:string 介绍 c++支持两种类型的字符串,一以NULL结尾的c风格字符串;二string类型的字符串 头文件 string是basic_string类模板使用char特化的类型 #include <string> typedef basic_string<char, char_traits<c 阅读全文
posted @ 2024-05-19 18:11 深蓝von 阅读(11) 评论(0) 推荐(0) 编辑
摘要:20. 有效的括号 题目链接 文章讲解 视频讲解 思路:遍历字符串,如果栈不为空,则进行匹配 如果匹配则出栈,否则入栈 如果栈为空,直接入栈 遍历结束后栈为空则说明全部匹配,否则没有全部匹配 class Solution { public: bool isValid(string s) { stac 阅读全文
posted @ 2024-05-18 16:00 深蓝von 阅读(7) 评论(0) 推荐(0) 编辑
摘要:stack 介绍 先进后出的适配器 头文件 #include <stack> template <class Type, class Container = deque <type>> class stack 初始化 stack(); // 使用容器来构造一个栈,并保持原容器中的元素顺序 expli 阅读全文
posted @ 2024-05-17 17:21 深蓝von 阅读(9) 评论(0) 推荐(0) 编辑
摘要:vector 随机访问 在序列末尾插入和删除元素为常量时间,而在中间插入和删除元素需要线性时间 介绍 vector为可变长的数组(动态数组),定义的vector数组可以随时添加和删除元素 当vector容量不足以容纳新增元素时会扩容为两倍(不同编译器有不同的实现,GCC以两倍扩容),需要将元素复制到 阅读全文
posted @ 2024-05-17 09:39 深蓝von 阅读(221) 评论(0) 推荐(0) 编辑
摘要:344.反转字符串 题目链接 文章讲解 视频讲解 时间复杂度 o(n) 空间复杂度 o(1) 思路:双指针解决,和翻转数组一样 class Solution { public: void reverseString(vector<char>& s) { int left = 0, right = s 阅读全文
posted @ 2024-05-16 14:53 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:四数相加II 题目链接 文章讲解 视频讲解 时间复杂度 o(n2) 空间复杂度 o(n) class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vec 阅读全文
posted @ 2024-05-14 22:35 深蓝von 阅读(3) 评论(0) 推荐(0) 编辑
摘要:242.有效的字母异位词 题目链接 文章讲解 视频讲解 时间复杂度 o(n) 空间复杂度 o(n) class Solution { public: bool isAnagram(string s, string t) { unordered_map<char, int> s_map, t_map; 阅读全文
posted @ 2024-05-13 13:43 深蓝von 阅读(3) 评论(0) 推荐(0) 编辑
摘要:二分查找 二分法查找单个值 题目:给定一个n个有序的(升序)数组nums和一个目标值target,写一个函数搜索nums中target,如果目标值存在返回下标,否则返回-1; 关键词:有序数组,无重复元素 难点:区间选择及循环不变量 在每次循环中要坚持循环不变量原则(名字不重要,怎么做很重要) 如果 阅读全文
posted @ 2024-05-12 21:54 深蓝von 阅读(26) 评论(0) 推荐(0) 编辑
摘要:23.两两交换链表中的两个节点 题目链接 文章讲解 视频讲解 时间复杂度 o(n) 空间复杂度 o(1) tips: 画图,并将每一步操作用伪代码写出来,然后将代码理顺可以避免修改代码的麻烦 初始化的时候就要将previous初始化为current的前一个节点,这样可以保证循环的第一步满足循环要求 阅读全文
posted @ 2024-05-12 14:33 深蓝von 阅读(7) 评论(0) 推荐(0) 编辑
摘要:203.移除链表元素 题目链接 https://leetcode.cn/problems/remove-linked-list-elements/ 文章讲解 https://programmercarl.com/0203.移除链表元素.html#算法公开课 视频讲解 https://www.bili 阅读全文
posted @ 2024-05-11 14:58 深蓝von 阅读(9) 评论(0) 推荐(0) 编辑
摘要:977.有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl.com/0977.有序数组的平方.html 视频讲解: https://www.bilibili. 阅读全文
posted @ 2024-05-10 14:05 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:704.二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 文档讲解:https://programmercarl.com/0704.二分查找.html 视频讲解:https://www.bilibili.com/video/BV1fA4y1o 阅读全文
posted @ 2024-05-08 19:48 深蓝von 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示