摘要:
560. 和为 K 的子数组 思路 前缀和:我们维护一个当前的累计和 prefixSum,表示从数组起始位置到当前位置前的所有元素之和。 哈希表:我们使用一个哈希表 prefixSumCount 来记录每种前缀和出现的次数。 如果存在某个前缀和 prefixSum - k,说明从那个位置到当前位置的 阅读全文
posted @ 2025-08-09 00:48
quanht
阅读(3)
评论(0)
推荐(0)
摘要:
438. 找到字符串中所有字母异位词 思路 滑动窗口 + 数组(字符计数) 使用两个固定长度的数组(长度为 26,代表英文字母 a-z)分别记录: p 中各字符的频率; 当前窗口中各字符的频率; 遍历 s,滑动长度为 len(p) 的窗口,比较窗口内字符频率是否与 p 的一致; 如果一致,记录窗口 阅读全文
posted @ 2025-08-09 00:48
quanht
阅读(11)
评论(0)
推荐(0)
摘要:
283. 移动零 思路 使用一个指针 i 来记录当前非零元素应该放置的位置。 遍历数组,如果当前元素不为零,则将其放到 i 的位置,并将 i 向后移动一位。 遍历结束后,从 i 开始到数组末尾的所有位置都设置为 0。 复杂度分析 时间复杂度:O(n),其中n是数组长度。进行了两次独立遍历 空间复杂度 阅读全文
posted @ 2025-08-09 00:48
quanht
阅读(7)
评论(0)
推荐(0)
摘要:
239. 滑动窗口最大值 思路 双端队列的使用:我们使用双端队列来存储可能成为窗口最大值的元素索引。队列中的元素按从大到小排序。 维护队列: 移除不在当前窗口范围内的元素(从队列头部移除) 移除所有小于当前元素的队列元素(从队列尾部移除),因为它们不可能是当前或未来窗口的最大值 将当前元素添加到队列 阅读全文
posted @ 2025-08-09 00:37
quanht
阅读(11)
评论(0)
推荐(0)
摘要:
128. 最长连续序列 思路 将所有元素放入一个 HashSet 中,用于快速查找是否存在某个数字。 遍历每个数字时,判断它是否是一个序列的起点: 如果 num - 1 不存在于集合中,则说明 num 是一个潜在序列的起点。 从该起点开始向后扩展,统计当前连续序列的长度。 维护最大长度即可。 复杂度 阅读全文
posted @ 2025-08-09 00:11
quanht
阅读(19)
评论(0)
推荐(0)

浙公网安备 33010602011771号