上一页 1 ··· 7 8 9 10 11 12 13 下一页
摘要: 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度内完成此题。 这道题的核心要求很明确:不能用出发、时间复杂度O(n)、空间最哟,解法是左右乘积列表(前缀×后缀)。 解题思路 前缀乘积:prefix[i] = 阅读全文
posted @ 2026-03-29 21:56 ZealousMclaren 阅读(16) 评论(0) 推荐(0)
摘要: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 这道题的最优解法是三次翻转法,时间复杂度O(n),空间复杂度O(1),不用额外开辟数组,效率最高。 核心思路(三次翻转) 向右轮转k位,等价于: 翻转整个数组 翻转前k个元素 翻转后面n-k个元素 注意:k可能大于 阅读全文
posted @ 2026-03-29 10:58 ZealousMclaren 阅读(40) 评论(0) 推荐(0)
摘要: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 这是一道经典的排序 + 遍历合并问题,核心问题:先按区间起点排序,再逐个合并重叠 阅读全文
posted @ 2026-03-29 10:01 ZealousMclaren 阅读(36) 评论(0) 推荐(0)
摘要: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组是数组中的一个连续部分。 这是经典的动态规划问题,核心思路:遍历数组时,始终保留当前位置的最大连续子数组和,最终全局全最大值就是答案。 完整代码实现如下: #include #inclu 阅读全文
posted @ 2026-03-29 08:55 ZealousMclaren 阅读(26) 评论(0) 推荐(1)
摘要: 给定两个字符串 s 和 t,长度分别是 m 和 n,返回 s 中的 最短窗口 子串,使得该子串包含 t 中的每一个字符(包括重复字符)。如果没有这样的子串,返回空字符串 ""。 这道题是经典的滑动窗口(双指针)应用题,核心思路是用左右指针维护一个窗口,通过伸缩窗口找到包含目标字符串所有字符的最短子串 阅读全文
posted @ 2026-03-28 20:48 ZealousMclaren 阅读(38) 评论(0) 推荐(0)
摘要: 我们用一个双端队列deque,只存数组下标,并且保证: 队头 = 当前窗口最大值的下标 队列里的数从大到小排列 普通队列(queue):只能队尾进,队头出 双端队列(deque = double ended queue):两头都能插,都能删 为什么滑动窗口必须用deque? 因为我们要做两件事: 删 阅读全文
posted @ 2026-03-27 21:59 ZealousMclaren 阅读(15) 评论(0) 推荐(0)
摘要: 核心逻辑: 前缀和:preSum表示从数组开头到当前元素的总和 公式:preSum[j] - pre[i] =k ——> 子数组i+1~j的和 =k 转化成: 找preSum[i] = pre[j] - k 用哈希表记录每个前缀和出现的次数,实现O(1)查询 关键细节 predixMap[0] = 阅读全文
posted @ 2026-03-26 13:20 ZealousMclaren 阅读(26) 评论(0) 推荐(0)
摘要: 异位词:字母种类、个数相同 要求:在s里找到所有和p是异位词的子串,返回它们的起始下标 例子: s = "cbaebabacd", p = "abc" 异位词子串:cba(下标 0)、bac(下标 6) 输出:[0,6] 最优思路(滑动窗口+计数) 1、固定窗口大小:窗口长度=p的长度 2、计数数组 阅读全文
posted @ 2026-03-25 23:42 ZealousMclaren 阅读(29) 评论(0) 推荐(0)
摘要: 题目理解: 字符串 s:比如 "abcabcbb" 不含重复字符:子串里每个字符只能出现一次 最长子串长度:找满足条件的最长一段 例子: 输入:s = "abcabcbb" 输出:3(答案是 "abc",长度 3) 核心思路:滑动窗口 我们用两个指针表示一个窗口: 左指针left:窗口左边界 右指针 阅读全文
posted @ 2026-03-25 15:09 ZealousMclaren 阅读(34) 评论(0) 推荐(0)
摘要: 接雨水的本质: 一个位置能存多少水,取决于它左右两边最高柱子里较矮的那一个。 右边较高的柱子保证了水不会从右边流走,因此能接多少水就是左边较矮的那个柱子的事 接下来我们在通过比较左边柱子的最大高度,来计算当前位置能存储多少水 水量=左边柱子的最大高度-当前柱子高度 双指针解法就是: 用两个指针从左右 阅读全文
posted @ 2026-03-25 09:16 ZealousMclaren 阅读(45) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 下一页