190:最大连续1的个数III

LeetCode 1004 https://leetcode.cn/problems/max-consecutive-ones-iii/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 统计窗口内 0 的个数 cnt0,则问题转化成在 cnt0 ≤k 的前提下,窗口大小的最大值。 时间复杂度:O(n),其中 n 为 nums 的长度。证明方式见视频讲解。 空间复杂度:O(1)。 ...

七月 15, 2025 · Cassius

189:数组中出现次数超过一半的数字

LCR 158 https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/description/ 难度:简单 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 摩尔投票法。 时间复杂度 O(N) : N 为数组 stock 长度。 空间复杂度 O(1) : votes 变量使用常数大小的额外空间。 ...

七月 15, 2025 · Cassius

188:会议室II

LeetCode 253 https://www.lintcode.com/problem/919/description 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 给定一系列的会议时间间隔 intervals,包括起始和结束时间[[s1,e1],[s2,e2],…] (si < ei),找到所需的最小的会议室数量。 样例: 输入: intervals = [(0,30),(5,10),(15,20)] 输出: 2 解释: 需要两个会议室 会议室1:(0,30) 会议室2:(5,10),(15,20) 本题考查差分。定义差分数组 diff,对于每个会议,diff[start]++,diff[end]–,然后对 diff 做前缀和,s 的值就是当前需要会议室的数量,s 的最大值就是答案。 时间复杂度:O(n) 空间复杂度:O(n) ...

七月 15, 2025 · Cassius

187:交错字符串

LeetCode 97 https://leetcode.cn/problems/interleaving-string/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ f[i + 1][j + 1] 表示 s3 的前 i + j + 2 个元素能否由 s1 的前 i + 1 个元素和 s2 的前 j + 1 个元素组成。 状态转移条件是 s3 的前 i + j + 1 个元素能否由 s1 的前 i 个元素和 s2 的前 j + 1 个元素组成,或由 s1 的前 i + 1 个元素和 s2 的前 j 个元素组成。 初始值 f[0][0] = 0,并且单独计算 f[i][0] 和 f[0][j]。 时间复杂度:O(nm)。 空间复杂度:O(nm)。 ...

七月 15, 2025 · Cassius

186:柱状图中最大的矩形

LeetCode 84 https://leetcode.cn/problems/largest-rectangle-in-histogram/description/ 难度:困难 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 单调栈。h = height[i],left[i] 表示在 i 左侧小于 h 的最近元素下标,right[i] 表示在 i 右侧小于等于 h 的最近元素下标。以 h 为高度的矩形的最大面积为 height[i] * (right[i] - left[i] - 1)。 两次遍历,在计算 left 的过程中,如果栈顶元素 ≥ heights[i],那么 i 就是栈顶元素的 right。 时间复杂度:O(n),其中 n 为 heights 的长度。每个元素入栈出栈各至多一次,所以二重循环是 O(n) 的。 空间复杂度:O(n)。 ...

七月 15, 2025 · Cassius

185:至少有K个重复字符的最长子串

LeetCode 395 https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 本题直接使用滑动窗口,当不满足条件时,无法确定应该如何移动窗口,因此需要添加一个参数,count 记录窗口内不同字母的数量。在滑动窗口的过程中,固定右端点,unique 表示窗口内不同字母的数量,valid 表示至少出现了 k 次的字母的数量。当 unique > count 时,需要右移窗口左端点。当 valid == count 时,窗口合法,更新答案。最后遍历 count 的可能值 1 - 26,得到最终的答案。 时间复杂度: O(26∗n) 空间复杂度: O(n) ...

七月 15, 2025 · Cassius

184:丑数II

LeetCode 264 https://leetcode.cn/problems/ugly-number-ii/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 定义数组 dp,其中 dp[i] 表示第 i 个丑数,第 n 个丑数即为 dp[n]。 由于最小的丑数是 1,因此 dp[1]=1。 如何得到其余的丑数呢?定义三个指针 p2,p3,p5,表示下一个丑数是当前指针指向的丑数乘以对应的质因数。初始时,三个指针的值都是 1。 当 2≤i≤n 时,令 dp[i]=min(dp[p2]×2,dp[p3]×3,dp[p5]×5),然后分别比较 dp[i] 和 dp[p2]×2,dp[p3]×3,dp[p5]×5 是否相等,如果相等则将对应的指针加 1。 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ...

七月 15, 2025 · Cassius

183:二叉树的镜像

LCR 144 https://leetcode.cn/problems/er-cha-shu-de-jing-xiang-lcof/description/ 难度:简单 递归镜像二叉树。 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 时间复杂度 O(N) : 其中 N 为二叉树的节点数量,建立二叉树镜像需要遍历树的所有节点,占用 O(N) 时间。 空间复杂度 O(N) : 最差情况下(当二叉树退化为链表),递归时系统需使用 O(N) 大小的栈空间。 ...

七月 15, 2025 · Cassius

182:顺时针打印矩阵

LCR 146 https://leetcode.cn/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/description/ 难度:简单 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 时间复杂度:O(mn),其中 m 和 n 分别为 array 的行数和列数。 空间复杂度:O(1)。返回值不计入。 ...

七月 15, 2025 · Cassius

181:36进制加法

NowCoder 330 https://www.nowcoder.com/practice/c5db069fd9d64e6e9cf5fd68860abcdd 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 本题类似 LeetCode 415 字符串相加,不过改成了 36 进制。代码类似,只需要将 10 改为 36,以及 36 进制字符与数字的转换。 时间复杂度:O(max(m, n))。 空间复杂度:O(1)。 ...

七月 15, 2025 · Cassius