Remove all the elements in the old window
while ( dq . Count > 0 && dq [ 0 ] <= i - k ) dq . RemoveAt ( 0 ) ; while ( dq . Count > 0 && b [ i ] > b [ dq [ dq . Count - 1 ] ] ) dq . RemoveAt ( dq . Count - 1 ) ; dq . Add ( i ) ;