You are given an array nums consisting of positive integers.
Return the number of subarrays of nums that are in strictly increasing order.
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-strictly-increasing-subarrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
动态规划,代码如下
class Solution:
def countSubarrays(self, nums: List[int]) -> int:
s,t=1,1
for i in range(1,len(nums)):
if nums[i]<=nums[i-1]:t=1
else:t+=1
s+=t
return s
#双指针
class Solution:
def countSubarrays(self, nums: List[int]) -> int:
#双指针来解决
n=len(nums)
a=ans=0
nums.append(-1)
for i in range(1,n+1):
if nums[i-1] >= nums[i]:
w=i-a
a=i
ans+=w*(w+1)//2
return ans
明显看出,如果一开始的数组是严格上升的,,,双指针只需要计算一次