094:长度最小的子数组

LeetCode 209 https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 难度:209 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 满足单调性,可以使用滑动窗口。 时间复杂度:O(n),其中 n 为 nums 的长度。虽然写了个二重循环,但是内层循环中对 left 加一的总执行次数不会超过 n 次,所以总的时间复杂度为 O(n)。 空间复杂度:O(1),仅用到若干额外变量。 ...

七月 6, 2025 · Cassius

055:最小覆盖子串

LeetCode 76 https://leetcode.cn/problems/minimum-window-substring/description/ 难度:困难 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 这是滑动窗口的题目。s 覆盖 t 的意思就是对 t 中的每个字母,s 里的出现次数都不小于 t 里的出现次数。出现次数使用哈希表来计数,在本题可以使用数组来进行优化。 时间复杂度:O(∣Σ∣m+n),其中 m 为 s 的长度,n 为 t 的长度,∣Σ∣ 为字符集合的大小,本题字符均为英文字母,所以 ∣Σ∣=52。注意 left 只会增加不会减少,left 每增加一次,我们就花费 O(∣Σ∣) 的时间。因为 left 至多增加 m 次,所以二重循环的时间复杂度为 O(∣Σ∣m),再算上统计 t 字母出现次数的时间 O(n),总的时间复杂度为 O(∣Σ∣m+n)。 空间复杂度:O(∣Σ∣)。如果创建了大小为 128 的数组,则 ∣Σ∣=128。 ...

七月 2, 2025 · Cassius

001:无重复字符的最长子串

LeetCode 0003 https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 难度:中等 本题为经典的哈希表加滑动窗口的题目,哈希表统计窗口内字符出现次数,如果窗口右端点字符出现次数大于 1,右移左端点,直到无重复字符,最后更新答案。窗口的长度为 right - left + 1。 时间复杂度:O(n),其中 n 为 s 的长度。注意 left 至多增加 n 次,所以整个二重循环至多循环 O(n) 次。 空间复杂度:O(∣Σ∣),其中 ∣Σ∣ 为字符集合的大小,本题中字符均为 ASCII 字符,所以 ∣Σ∣≤128。 ...

六月 25, 2025 · Cassius