Number of Valid Subarrays
https://leetcode.com/problems/number-of-valid-subarrays/
class Solution(object):
def validSubarrays(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for i in range(len(nums)):
curr = nums[i]
j = i+1
while j < len(nums) and nums[j] >= curr:
j+=1
res += j-i
return resclass Solution(object):
def validSubarrays(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nextSmaller = [len(nums)] * len(nums)
stack = []
for i,v in enumerate(nums):
while len(stack) != 0 and stack[-1][1] > v:
nextSmaller[stack.pop()[0]] = i
stack.append([i,v])
return sum([v-i for i,v in enumerate(nextSmaller)])Last updated