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