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-795区间子数组个数

LeetCode 1662. 检查两个字符串数组是否相等 / 795. 区间子数组个数 / 剑指 Offer 47. 礼物的最大价值

LeetCode 0795. 区间子数组个数

LeetCode 0795. 区间子数组个数

Leetcode 713 Subarray Product Less Than K (子数组乘积大于K的个数) (双指针)

LeetCode 581. 最短无序连续子数组/611. 有效三角形的个数/15. 三数之和/18. 四数之和(双指针)