滑动窗口的最大值
根据题目要求,利用栈的思想。
import java.util.*;
public class Solution {
public ArrayList<Integer> maxInWindows(int [] num, int size) {
ArrayList<Integer> list1=new ArrayList<Integer>();
Stack<Integer> stack1=new Stack<Integer>();
if(size==0){
return list1;
}
for(int i=0;i<=num.length-size;i++) {
if(stack1.empty()) {
for(int j=i;j<=i+size-1;j++) {
stack1.push(num[j]);
}
}
list1.add(max(stack1));
}
return list1;
}
public Integer max(Stack<Integer> stack1) {
List<Integer> list1=new ArrayList<Integer>();
while(!stack1.empty()) {
list1.add(stack1.pop());
}
// 判断最大值
int flag=list1.get(0);
for(int i=1;i<list1.size();i++) {
if(list1.get(i)>flag) {
flag=list1.get(i);
}
}
return flag;
}
}