- 博客(245)
- 收藏
- 关注
原创 LeetCode 热题 100_最长公共子序列(95_1143_中等_C++)
LeetCode 热题 100_最长公共子序列(95_1143_中等_C++)题目描述:给定两个字符串 text1 和 text2,返回这两个字符串的最长 **公共子序列** 的长度。如果不存在 **公共子序列** ,返回 0 。一个字符串的 **子序列** 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 - 例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的
2026-04-20 14:13:38
343
原创 LeetCode 面试经典 150_二分查找_寻找两个正序数组的中位数(117_4_C++_困难)(先合并再挑选中位数;划分数组(二分查找))
LeetCode 面试经典 150_二分查找_寻找两个正序数组的中位数(117_4_C++_困难)题目描述:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。
2026-01-29 08:51:27
975
原创 蓝桥杯_工作时长_C++
本文介绍了蓝桥杯;工作时长;题目的C++解法。题目要求计算给定上下班时间记录的总工作时长(以秒为单位)。解题思路是将所有时间转换为以2022年为基准的总秒数,具体步骤包括:处理日期格式输入,考虑非闰年各月份天数,计算每个时间点对应的秒数,排序后累加相邻时间差。代码实现了时间转换和差值计算,最终输出总工作时长。该解法适用于填空题,直接输出结果即可。
2026-01-19 16:28:53
505
原创 LeetCode 面试经典 150_二分查找_寻找旋转排序数组中的最小值(116_153_C++_中等)
LeetCode 面试经典 150_二分查找_寻找旋转排序数组中的最小值(116_153_C++_中等)题目描述:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为
2026-01-17 13:03:24
809
原创 LeetCode 面试经典 150_二分查找_在排序数组中查找元素的第一个和最后一个位置(115_34_C++_中等)
LeetCode 面试经典 150_二分查找_在排序数组中查找元素的第一个和最后一个位置(115_34_C++_中等)题目描述:给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2026-01-15 12:10:53
494
原创 LeetCode 面试经典 150_二分查找_搜索旋转排序数组(114_33_C++_中等)
LeetCode 面试经典 150_二分查找_搜索旋转排序数组(114_33_C++_中等)题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如,
2026-01-12 15:30:31
906
原创 LeetCode 面试经典 150_二分查找_寻找峰值(113_162_C++_中等)(暴力破解,二分查找)
LeetCode 面试经典 150_二分查找_寻找峰值(113_162_C++_中等)题目描述:峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
2026-01-11 10:06:11
952
原创 LeetCode 面试经典 150_二分查找_搜索二维矩阵(112_74_C++_中等)
LeetCode 面试经典 150_二分查找_搜索二维矩阵(112_74_C++_中等)题目描述:给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。
2026-01-08 11:19:47
741
原创 LeetCode 面试经典 150_二分查找_搜索插入位置(111_35_C++_简单)
LeetCode 面试经典 150_二分查找_搜索插入位置(111_35_C++_简单)题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2026-01-06 10:20:30
621
原创 LeetCode 面试经典 150_Kadane_环形子数组的最大和(110_918_C++_中等)(动态规划)
LeetCode 面试经典 150_Kadane_环形子数组的最大和(110_918_C++_中等)题目描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。
2026-01-05 17:29:37
391
原创 LeetCode 面试经典 150_Kadane 算法_最大子数组和(109_53_C++_中等)(贪心算法 ||动态规划)
LeetCode 面试经典 150_Kadane 算法_最大子数组和(109_53_C++_中等)题目描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。
2026-01-04 14:09:46
533
原创 LeetCode 面试经典 150_分治_合并 K 个升序链表(108_23_C++_困难)
LeetCode 面试经典 150_分治_合并 K 个升序链表(108_23_C++_困难)题目描述:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。
2025-12-29 16:37:58
660
原创 LeetCode 面试经典 150_分治_排序链表(106_148_C++_中等)
LeetCode 面试经典 150_分治_排序链表(106_148_C++_中等)题目描述:给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
2025-12-28 12:42:28
826
原创 LeetCode 面试经典 150_分治_将有序数组转换为二叉搜索树(105_108_C++_简单)(递归)
LeetCode 面试经典 150_分治_将有序数组转换为二叉搜索树(105_108_C++_简单)题目描述:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。
2025-12-27 15:03:01
490
原创 LeetCode 面试经典 150_回溯_单词搜索(104_79_C++_中等)
LeetCode 面试经典 150_回溯_单词搜索(104_79_C++_中等)题目描述:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
2025-12-25 15:10:24
1108
原创 牛客周赛 Round 123_C_小红出对 (哈希表+哈希集合)
牛客周赛 Round 123_C_小红出对题目描述:小红定义一个「对」为两张牌面数字相同的牌。小红有 n 张牌,她每次能打出一个「对」,但为了不让小紫发现她作弊,在所有打出的牌中不能有两张花色与牌面数字都相同的牌。小红想知道,她最多可以打出多少张牌,请你帮他找出一种出牌方案。
2025-12-21 22:45:05
433
原创 LeetCode 面试经典 150_回溯_括号生成(103_22_C++_中等)
LeetCode 面试经典 150_回溯_括号生成(103_22_C++_中等)题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
2025-12-21 12:08:16
301
原创 LeetCode 面试经典 150_回溯_组合总和(101_39_C++_中等)
LeetCode 面试经典 150_回溯_组合总和(101_39_C++_中等)题目描述:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 **任意顺序** 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。
2025-12-20 11:10:43
629
原创 LeetCode 面试经典 150_回溯_全排列(100_46_C++_中等)
LeetCode 面试经典 150_回溯_全排列(100_46_C++_中等)题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
2025-12-19 16:34:09
1195
原创 LeetCode 面试经典 150_回溯_组合(99_77_C++_中等)
LeetCode 面试经典 150_回溯_组合(99_77_C++_中等)题目描述:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。
2025-12-18 12:20:46
351
原创 LeetCode 面试经典 150_回溯_电话号码的字母组合(98_17_C++_中等)
LeetCode 面试经典 150_回溯_电话号码的字母组合(98_17_C++_中等)题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2025-12-15 11:58:55
1105
原创 LeetCode 面试经典 150_字典树_添加与搜索单词 - 数据结构设计(96_211_C++_中等)
LeetCode 面试经典 150_字典树_添加与搜索单词 - 数据结构设计(96_211_C++_中等)题目描述:请你设计一个数据结构,支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。实现词典类 WordDictionary : - WordDictionary() 初始化词典对象 - void addWord(word) 将 word 添加到数据结构中,之后可以对它进行匹配 - bool search(word) 如果数据结构中存在字符串与
2025-12-14 21:20:06
1142
原创 LeetCode 面试经典 150_字典树_实现 Trie (前缀树)(95_208_C++_中等)
LeetCode 面试经典 150_字典树_实现 Trie (前缀树)(95_208_C++_中等)题目描述:Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word)
2025-12-10 13:52:17
959
原创 LeetCode 面试经典 150_图的广度优先搜索_最小基因变化(93_433_C++_中等)(广度优先搜索(BFS))
LeetCode 面试经典 150_图的广度优先搜索_最小基因变化(93_433_C++_中等)题目描述:基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 'A'、'C'、'G' 和 'T' 之一。假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。 - 例如,"AACCGGTT" --> "AACCGGTA" 就是一次基因变化。
2025-12-07 13:04:58
879
原创 LeetCode 面试经典 150_图的广度优先搜索_蛇梯棋(93_909_C++_中等)(广度优选搜索)
LeetCode 面试经典 150_图的广度优先搜索_蛇梯棋(93_909_C++_中等)题目描述:给你一个大小为 n x n 的整数矩阵 board ,方格按从 1 到 n2 编号,编号遵循 转行交替方式 ,从左下角开始(即,从 board[n - 1][0] 开始)的每一行改变方向。你一开始位于棋盘上的方格 1。每一回合,玩家需要从当前方格 curr 开始出发,按下述要求前进:
2025-12-06 12:27:57
919
原创 LeetCode 面试经典 150_图_课程表(92_207_C++_中等)(广度优先搜索+拓扑排序)
LeetCode 面试经典 150_图_课程表(92_207_C++_中等)题目描述:你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课
2025-12-05 15:23:34
967
原创 LeetCode 面试经典 150_图_克隆图(90_133_C++_中等)(深度优先:DFS)
LeetCode 面试经典 150_图_克隆图(90_133_C++_中等) 题目描述:给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}
2025-11-28 15:53:00
942
原创 LeetCode 面试经典 150_图_被围绕的区域(89_130_C++_中等)(深度优先搜索:DFS)
LeetCode 面试经典 150_图_被围绕的区域(89_130_C++_中等)题目描述:给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' 组成,捕获 所有 被围绕的区域:连接:一个单元格与水平或垂直方向上相邻的单元格连接。区域:连接所有 'O' 的单元格来形成一个区域。围绕:如果您可以用 'X' 单元格 连接这个区域,并且区域中没有任何单元格位于 board 边缘,则该区域被 'X' 单
2025-11-27 12:23:54
706
原创 LeetCode 面试经典 150_图_岛屿数量(88_200_C++_中等)(DFS)
LeetCode 面试经典 150_图_岛屿数量(88_200_C++_中等)题目描述:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2025-11-26 12:05:55
847
原创 LeetCode 面试经典 150_二叉搜索树_验证二叉搜索树(87_98_C++_中等)
LeetCode 面试经典 150_二叉搜索树_验证二叉搜索树(87_98_C++_中等)题目描述:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。
2025-11-25 22:05:43
958
原创 STM32CubeMX 基本配置的作用
STM32CubeMX 基本配置的作用:1、列出引脚兼容的MCU2、未使用的GPIO设置,降低功耗3、是 MCU 向外部提供时钟信号的引脚4、程序堆和栈大小5、启用多线程支持6、优化功耗7、导出基本配置信息
2025-11-24 16:26:25
243
原创 LeetCode 面试经典 150_二叉搜索树_二叉搜索树中第 K 小的元素(86_230_C++_中等)
LeetCode 面试经典 150_二叉搜索树_二叉搜索树中第 K 小的元素(86_230_C++_中等)题目描述:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。
2025-11-24 15:57:46
386
原创 Keil uVision5 进行程序烧录后每次需要点复位才运行
Keil uVision5 进行程序烧录后每次需要点复位才运行1、对 Keil uVision5 进行配置
2025-11-23 17:05:41
306
原创 LeetCode 面试经典 150_二叉搜索树_二叉搜索树的最小绝对差(85_530_C++_简单)
LeetCode 面试经典 150_二叉搜索树_二叉搜索树的最小绝对差(85_530_C++_简单) 题目描述:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。
2025-11-23 11:30:15
423
原创 LeetCode 面试经典 150_二叉树层次遍历_二叉树的锯齿形层序遍历(84_103_C++_中等)(层次遍历+双端队列)
LeetCode 面试经典 150_二叉树层次遍历_二叉树的锯齿形层序遍历(84_103_C++_中等)题目描述:给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
2025-11-21 11:31:31
650
原创 LeetCode 面试经典 150_二叉树层次遍历_二叉树的层序遍历(83_102_C++_中等)
LeetCode 面试经典 150_二叉树层次遍历_二叉树的层序遍历(83_102_C++_中等)题目描述:给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
2025-11-19 11:34:14
1179
原创 LeetCode 面试经典 150_二叉树层次遍历_二叉树的层平均值(82_637_C++_简单)
LeetCode 面试经典 150_二叉树层次遍历_二叉树的层平均值(82_637_C++_简单)题目描述:给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。
2025-11-19 11:16:29
377
原创 LeetCode 面试经典 150_二叉树层次遍历_二叉树的右视图(81_199_C++_中等)
LeetCode 面试经典 150_二叉树层次遍历_二叉树的右视图(81_199_C++_中等)题目描述:给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
2025-11-18 22:36:36
350
原创 LeetCode 面试经典 150_二叉树_二叉树的最近公共祖先(80_236_C++_中等)(DFS:后续遍历)
LeetCode 面试经典 150_二叉树_二叉树的最近公共祖先(80_236_C++_中等)题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
2025-11-17 19:48:48
1366
原创 LeetCode 面试经典 150_二叉树_完全二叉树的节点个数(79_222_C++_简单)
LeetCode 面试经典 150_二叉树_完全二叉树的节点个数(79_222_C++_简单)题目描述:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(从第 0 层开始),则该层包含 1~ 2h 个节点。
2025-11-17 17:34:45
654
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅