博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift-2019力扣杯春季决赛]4. 有效子数组的数目
阅读量:5055 次
发布时间:2019-06-12

本文共 1213 字,大约阅读时间需要 4 分钟。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

给定一个整数数组 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. 1 <= A.length <= 50000
  2. 0 <= A[i] <= 100000

848 ms

1 class Solution { 2     var ne:[Int] = [Int](repeating:0,count:50005) 3     var st:[Int] = [Int](repeating:0,count:50005) 4     var t:Int = 0 5     func validSubarrays(_ nums: [Int]) -> Int { 6         var n:Int = nums.count 7         var ans:Int = 0 8         st[0] = n 9         for i in stride(from:(n - 1),through:0,by:-1)10         {11             while((t != 0) && nums[st[t]] >= nums[i])12             {13                 t -= 114             }15             ne[i] = st[t]16             t += 117             st[t] = i18             ans += ne[i] - i19         }20         return ans21     }22 }

 

转载于:https://www.cnblogs.com/strengthen/p/10745867.html

你可能感兴趣的文章
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
bzoj1230 开关灯 线段树
查看>>
LinearLayout
查看>>
学习python:day1
查看>>
css3动画属性
查看>>
第九次团队作业-测试报告与用户使用手册
查看>>
Equal Sides Of An Array
查看>>