首页 > 其他分享 >[leetcode每日一题]11.24

[leetcode每日一题]11.24

时间:2022-11-24 10:32:45浏览次数:77  
标签:right nums int 每日 ptr2 11.24 ptr1 leetcode left

​795. 区间子数组个数​

给你一个整数数组 ​​nums​​ 和两个整数:​​left​​ 及 ​​right​​ 。找出 ​​nums​​ 中连续、非空且其中最大元素在范围 ​​[left, right]​​ 内的子数组,并返回满足条件的子数组的个数。

生成的测试用例保证结果符合 32-bit 整数范围。

示例 1:

输入:nums = [2,1,4,3], left = 2, right = 3
输出:3
解释:满足条件的三个子数组:[2], [2, 1], [3]

示例 2:

输入:nums = [2,9,2,5,6], left = 2, right = 8
输出:7

提示:

  • ​1 <= nums.length <= 105
  • ​0 <= nums[i] <= 109
  • ​0 <= left <= right <= 109

Solution

滑动窗口,当前数作为子数组右端点。使用两个指针,ptr1记录上一个在区间内的数的下标,ptr2记录最前一个合法的小于left的数的下标,同时通过一定的初始化技巧防止错误计算,那么答案就是每个合法的ptr1-ptr2+1。

代码(C++)

class Solution {
public:
int numSubarrayBoundedMax(vector<int>& nums, int left, int right) {
int ptr1 = -1; // [left, right]
int ptr2 = 0; // [:,left)
int res = 0;
for(int i=0;i<nums.size();i++){
if(nums[i]>=left&&nums[i]<=right)ptr1 = i;
if(nums[i]>right)ptr2 = i+1;
if(ptr1>=ptr2)res += ptr1 - ptr2 + 1;
}
return res;
}
};


标签:right,nums,int,每日,ptr2,11.24,ptr1,leetcode,left
From: https://blog.51cto.com/u_15763108/5882597

相关文章

  • [LeetCode] 795. Number of Subarrays with Bounded Maximum
    Givenanintegerarray nums andtwointegers left and right,return thenumberofcontiguousnon-empty subarrays suchthatthevalueofthemaximumarr......
  • 2022-11-23 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • 力扣 leetcode 3. 无重复字符的最长子串
    题目描述给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。提示:0<=s.length<=5*104s由英文字母、数字、符号和空格组成示例示例1:输入:s=......
  • LeetCode刷题笔记—13.罗马数字转整数
    在此不再做题目描述。(该题链接:13.罗马数字转整数-力扣(LeetCode))在观察罗马数字时,我们可以发现计算罗马数字的技巧:可以设定一个初始值ans=0,然后对罗马数字从左到......
  • 算法4: LeetCode_K个节点的组内逆序调整
    最近一直都是链表的算法练习,今天刷的是LeetCode原题,还是关于链表的节点逆转,难度等级:Hard.首先看题目:给定一个单聊表的头节点head和一个正整数k,要求实现k个节点的小组内......
  • Leetcode 1360. 日期之间隔几天
    题目:请你编写一个程序来计算两个日期之间隔了多少天。日期以字符串形式给出,格式为YYYY-MM-DD,如示例所示。难度:简单题示例1:输入:date1="2019-06-29",date2="2019-......
  • LeetCode[435] 无重叠区间
    https://leetcode.cn/problems/non-overlapping-intervals/description/线性dpTLEclassSolution{public:intf[200010];inta[200010];interaseOver......
  • [LeetCode] 2133. Check if Every Row and Column Contains All Numbers
    An nxn matrixis valid ifeveryrowandeverycolumncontains all theintegersfrom 1 to n (inclusive).Givenan nxn integermatrix matrix,re......
  • leetcode 88. 合并两个有序数组 js实现
    给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合......
  • LeetCode[124] 二叉树中的最大路径和
    https://leetcode.cn/problems/binary-tree-maximum-path-sum/description/dp,树上搜索因为值有负数,所以针对一个节点的更新,有四种情况:节点值本身节点值+左子树节......