文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个整数数组 A,返回满足下面条件的 非空连续 子数组的数目:

子数组中,最左侧的元素不大于其他元素。

示例 1:
输入:[1,4,2,5,3]
输出:11
解释:有 11 个有效子数组,分别是:[1],[4],[2],[5],[3],[1,4],[2,5],[1,4,2],[2,5,3],[1,4,2,5],[1,4,2,5,3] 。示例 2:
输入:[3,2,1]
输出:3
解释:有 3 个有效子数组,分别是:[3],[2],[1] 。示例 3:
输入:[2,2,2]
输出:6
解释:有 6 个有效子数组,分别为是:[2],[2],[2],[2,2],[2,2],[2,2,2] 。提示:
1 <= A.length <= 50000
0 <= A[i] <= 100000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-valid-subarrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 建立单调递增的栈,存入元素的下标
  • 当遇到递减时,弹栈,以 s.top() 开头, 结尾在 [s.top(),i-1]的 都是满足的子数组
class Solution {public:int validSubarrays(vector<int>& nums) {stack<int> s;nums.push_back(-1); // 保证最后全部清空栈int count = 0;for(int i = 0; i < nums.size(); ++i){while(!s.empty() && nums[i] < nums[s.top()]){count += i-s.top();s.pop();}s.push(i);}return count;}
};

160 ms 43.8 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1063. 有效子数组的数目(单调栈)相关推荐

  1. LeetCode 581. 最短无序连续子数组(排序单调栈)

    文章目录 1. 题目 2. 解题 2.1 排序 2.2 4次遍历 2.3 单调栈 1. 题目 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. ...

  2. [leetcode](4.21)4. 有效子数组的数目

    给定一个整数数组 A,返回满足下面条件的 非空.连续 子数组的数目: 子数组中,最左侧的元素不大于其他元素. 示例 1: 输入:[1,4,2,5,3] 输出:11 解释:有 11 个有效子数组,分别是 ...

  3. LeetCode 1793. 好子数组的最大分数(单调栈)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数数组 nums (下标从 0 开始)和一个整数 k . 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i+1 ...

  4. LeetCode 918. 环形子数组的最大和(前缀和+单调队列)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和. 在此处,环形数组意味着数组的末端将会与开头相连呈环状. (形式上,当0 & ...

  5. LeetCode 1695. 删除子数组的最大得分(前缀和+哈希+双指针)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数数组 nums ,请你从中删除一个含有 若干不同元素 的子数组. 删除子数组的 得分 就是子数组各元素之 和 . 返回 只删除一个 子数组可 ...

  6. LeetCode 795. 区间子数组个数

    给定一个元素都是正整数的数组A ,正整数 L 以及 R (L <= R). 求连续.非空且其中最大元素满足大于等于L 小于等于R的子数组个数. 例如 : 输入: A = [2, 1, 4, 3] ...

  7. LeetCode动态规划 环形子数组的最大和

    给定一个由整数数组 A 表示的环形数组 C,求 C 的非空子数组的最大可能和. 此外,子数组最多只能包含固定缓冲区 A 中的每个元素一次. 思路 本道题需要分类成两种情况,题目答案为以下两种情况的较大 ...

  8. 【LeetCode】643. 子数组最大平均数 I

    class Solution1 {/*643. 子数组最大平均数 I给你一个由 n 个元素组成的整数数组 nums 和一个整数 k .请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数 ...

  9. leetcode 1399. 统计最大组的数目

    [题目]1399. 统计最大组的数目 给你一个整数 n .请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中. 请你统计每个组中 ...

最新文章

  1. delphi批量存入多媒体字段 遇到内存溢出的坑
  2. c++17(9)-多参数列表
  3. javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
  4. python 黏贴版 pyperclip
  5. 回到顶部效果之加速置顶
  6. Java 8 异步 API、循环、日期,用好提高生产力!
  7. 软考网络工程师易错100问
  8. 观察者模式及其应用场景
  9. 局域网打印机共享怎么设置_局域网如何共享打印机
  10. 车辆违章查询接口文档
  11. Unity 获取文件夹下所有文件夹/文件
  12. 苹果所用应用打不开怎么办?论浮标有多重要?
  13. execl 如何同时冻结一行与一列
  14. 7张图带你轻松入门RocketMQ
  15. ps更换证件照的背景色
  16. 关于二维数组传参做形参
  17. VMware Workstation 14 官方免费正式版
  18. 显示器连接服务器老一闪一闪,显示器黑屏一闪一闪的怎么回事_显示器黑屏一闪一闪的解决方法...
  19. 世界之窗如何保存html,导入其他书签
  20. ajax的leiku,AJAX实现汉字和拼音搜索自动提示的效果(asp.net)

热门文章

  1. java读取gpx文件,从Leaflet导出GPX文件
  2. 喇叭正反相位测试音频_FIR滤波器能给音频扩声带来怎样的帮助?
  3. 深入理解卷积层,全连接层的作用意义
  4. MATLAB中MEX文件的编写与调试
  5. layer ajax 用法,layer加载遮罩层使用 Ajax Loading Demo
  6. android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡
  7. php环境编译成品,PHPweb成品网站安装环境要求和安装方法
  8. Oracle Golden Gate概要
  9. ZJOI2018 Round2 游记
  10. codeforces 303 div2 E