题解 | #滑动窗口的最大值#
滑动窗口的最大值
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;
}
}
查看3道真题和解析

