Subarray With Elements Greater Than Varying Threshold

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution:
    def validSubarraySize(self, nums: List[int], threshold: int) -> int:
        nums = [0] + nums + [0]
        stack = [0]
        for i in range(1,len(nums)):
            while nums[i] < nums[stack[-1]]:
                element = nums[stack.pop()]
                if element > threshold / (i - stack[-1] - 1):
                    return i - stack[-1] - 1
            stack.append(i)
        return -1