LeetCode 795 区间子数组个数[双指针 滑动窗口] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 795 区间子数组个数[双指针 滑动窗口] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
一道非常巧妙的双指针题型,其实也是滑动窗口题型,首先根本不用考虑太多情况,因为根据题意,只要你连续数组中最大值是大于left的,遍历到的num只要不大于right就还在连续数组中,那么对于连续区间考虑其子数组情况,只有小于left的本身或者连续小于left的数组才不计入连续区间中,因此,在遍历到小于left的num计算子数组个数时,不把当前数计入连续seq中,直到遇到大于等于left的才把之前的计入,代码如下:
class Solution
public:
int numSubarrayBoundedMax(vector<int>& nums, int left, int right)
int res = 0, bound = -1, seq = 0;
int n = nums.size();
for(int i = 0; i < n; i ++)
if(nums[i] > right)
bound = i;
seq = 0;
else if(nums[i] >= left)
seq = i - bound;
res += seq;
return res;
;
以上是关于LeetCode 795 区间子数组个数[双指针 滑动窗口] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1662. 检查两个字符串数组是否相等 / 795. 区间子数组个数 / 剑指 Offer 47. 礼物的最大价值
Leetcode 713 Subarray Product Less Than K (子数组乘积大于K的个数) (双指针)
LeetCode 581. 最短无序连续子数组/611. 有效三角形的个数/15. 三数之和/18. 四数之和(双指针)