Array: [1,3,−1,−3,5], k=3. Deque stores indices. i=0, val=1: deque empty, push 0. Deque: [0]
i=1, val=3: 3>1, pop 0, push 1.
Deque: [1]
i=2, val=−1: −1<3, push 2. Deque: [1,2]. Window complete. Max = nums[1]=3.
i=3, val=−3: −3<−1, push 3. Deque: [1,2,3].
Front 1 still in window. Max = 3.
i=4, val=5: 5>−3,−1,3, pop all, push 4. Front 1 outside window anyway. Deque: [4].
Max = 5. The front always gives the maximum.