题解 | #滑动窗口的最大值#
滑动窗口的最大值
https://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788
using System; using System.Collections; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num int整型一维数组 * @param size int整型 * @return int整型一维数组 */ public List<int> maxInWindows (List<int> num, int size) { // write code here if(num == null || num.Count == 0 || size <= 0){ return new List<int>(); } int n = num.Count; List<int> result = new List<int>(n - size + 1); LinkedList<int> deque = new LinkedList<int>(); for(int i = 0; i < n; i++){ if(deque.Count > 0 && deque.First.Value <= i - size){ deque.RemoveFirst(); } while(deque.Count > 0 && num[deque.Last.Value] <= num[i]){ deque.RemoveLast(); } deque.AddLast(i); if(i >= size - 1){ result.Add(num[deque.First.Value]); } } return result; } }