滑动窗口
文章平均质量分 50
西柚与蓝莓
好了阿鹏
展开
-
713. 乘积小于 K 的子数组 滑动窗口
8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。,请你返回子数组内所有元素的乘积严格小于。为右边界的满足条件的子数组个数为。假设当前窗口的左右边界为。(窗口内元素乘积)小于。的连续子数组的数目。(长度为 1),一共。原创 2024-10-01 11:01:09 · 427 阅读 · 0 评论 -
594. 最长和谐子序列 滑动窗口
数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。,请你在所有可能的子序列中找到最长的和谐子序列的长度。和谐数组是指一个数组里元素的最大值和最小值之间的差别。最长的和谐子序列是 [3,2,2,2,3]现在,给你一个整数数组。原创 2024-09-29 20:22:13 · 202 阅读 · 0 评论 -
2516. 每种字符至少取 K 个 滑动窗口 正难则反
r为右指针,l为左指针,当r指针右滑不满足条件时,则一直滑动左指针直到满足条件为止。下面的代码在第二个for循环是已经把不满足答案的给舍去了,所以下面的while循环一定能够找到满足num[ord(s[r])-97]原创 2024-09-10 08:44:30 · 475 阅读 · 0 评论 -
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
给你一个由 正 整数组成的数组 。如果数组中的某个子数组满足下述条件,则称之为 完全子数组 :返回数组中 完全子数组 的数目。子数组 是数组中的一个连续非空序列。示例 1:输入:nums = [1,3,1,2,2]输出:4解释:完全子数组有:[1,3,1,2]、[1,3,1,2,2]、[3,1,2] 和 [3,1,2,2] 。示例 2:输入:nums = [5,5,5,5]输出:10解释:数组仅由整数 5 组成,所以任意子数组都满足完全子数组的条件。子数组的总数为 10 。使用滑动窗原创 2024-06-02 10:08:24 · 497 阅读 · 0 评论 -
2730. 找到最长的半重复子字符串(c++,滑动窗口)
所谓半重复子字符串是指字符串中某个子串,其中相邻的两个字符相同,但不要求全部字符都相同。算法采用遍历字符串的方式,通过维护两个指针(preLeft和left)来记录重复字符的位置,并动态更新最长半重复子字符串的长度。最长半重复子字符串是 "5223" ,子字符串从 i = 0 开始,在 j = 3 处结束。最长半重复子字符串是 "11" ,子字符串从 i = 0 开始,在 j = 1 处结束。中至多有一对相邻字符是相等的,那么称这个字符串。s 就是一个半重复字符串,所以答案为 4。原创 2024-05-25 17:08:53 · 228 阅读 · 0 评论 -
1695. 删除子数组的最大得分(C++,滑动窗口)
这段代码使用了滑动窗口(双指针)的方法来动态维护一个不包含重复元素的子数组,并实时更新子数组的和。主要思想是,用r指针扩展窗口并添加新元素,同时更新窗口的和;当窗口内出现重复元素时,移动l指针缩小窗口,直到窗口内所有元素都是唯一的。在此过程中,不断更新并比较最长子数组的和,最终返回最大的和作为结果。最优子数组是 [5,2,1] 或 [1,2,5]的一个连续子序列,即如果它等于。最优子数组是 [2,4,5,6],请你从中删除一个含有。原创 2024-05-25 16:54:46 · 251 阅读 · 0 评论 -
2461. 长度为 K 子数组中的最大和(c++)
因为 15 是满足全部条件的所有子数组中的最大子数组和,所以返回 15。返回满足题面要求的最大子数组和。- [2,9,9] 不满足全部条件,因为元素 9 出现重复。- [9,9,9] 不满足全部条件,因为元素 9 出现重复。- [4,4,4] 不满足全部条件,因为元素 4 出现重复。- [1,5,4] 满足全部条件,和为 10。- [5,4,2] 满足全部条件,和为 11。- [4,2,9] 满足全部条件,和为 15。因为不存在满足全部条件的子数组,所以返回 0。是数组中一段连续非空的元素序列。原创 2024-05-24 22:47:13 · 301 阅读 · 0 评论