Array , window . Maintain deque of indices with decreasing values. i=0: deque=[0]. i=1: 5<8, deque=[0,1]. i=2: 10>5>8, pop all, deque=[2]. i=3: 7<10, deque=[2,3].
Window full, max=10. i=4: 9>7, pop 3. 9<10, deque=[2,4]. Index 2 still valid. Max=10. i=5: 4<9, deque=[2,4,5]. Index 2 still valid. Max=10. i=6: 15>all, clear deque. deque=[6]. Index 2 out of window anyway. Max=15. i=7: 12<15, deque=[6,7]. Max=15.