思路:使用一个单调递减栈保存数组下标,用单调递减栈的原因是为了使栈的最左是当前窗口的最大值,如果用递增栈无法保证栈的右边是当前栈的最大值。循环遍历如果数据过期就弹出保证当前栈的最左边是该窗口最大值的坐标。 import java.util.*;
public class Solution {
展开全文
这个方法最坏的时间复杂度为o(size*num.length),最优为O(n)。核心思想是记录每一次窗口的最大值及所属下标,当窗口滑动时只需判断新加入的值是否比最大值大,之前的最大值有没有被滑出去。 import java.util.ArrayList;
public class Solution
展开全文