1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
Question

Code
class Solution:
def longestSubarray(self, nums: List[int], limit: int) -> int:
max_q = deque()
min_q = deque()
l = 0
N = len(nums)
max_len = 0
l = 0
for r in range(N):
while max_q and max_q[-1] < nums[r]:
max_q.pop()
while min_q and min_q[-1] > nums[r]:
min_q.pop()
max_q.append(nums[r])
min_q.append(nums[r])
while max_q[0] - min_q[0] > limit:
if max_q[0] == nums[l]:
max_q.popleft()
elif min_q[0] == nums[l]:
min_q.popleft()
l += 1
max_len = max(max_len, r - l + 1)
return max_len