class Solution:
def incremovableSubarrayCount(self, nums: List[int]) -> int:
i = 0
n = len(nums)
while i < n - 1 and nums[i] < nums[i+1]:
i += 1
if i == n - 1: return (n * (n + 1)) // 2
j = n - 1
ans = i + 2 # 后缀是空的时候,答案是 i + 2
while j > -1:
if j+1<n and nums[j] >= nums[j+1]: break # 后缀不再递增,不满足 2
while i > -1 and nums[j] <= nums[i]:
i -= 1 # 只能靠缩小前缀来满足。而 i 不回退,因此时间复杂度还是 n
j -= 1
ans += i + 2
return ans