面试题65:滑动窗口的最大值

来源:互联网 发布:芙丽芳丝洗面奶知乎 编辑:程序博客网 时间:2024/05/22 15:00
滑动窗口。1)判断是否合法输入。2)合法,则找出0~size-1 中最大值,其坐标为index。3)滑动,判断index是否过期,过期则找到窗口中的最大值的index。添加到list当中。 import java.util.ArrayList;public class Solution {    public ArrayList<Integer> maxInWindows(int [] num, int size)    {        ArrayList<Integer> list=new ArrayList<Integer> ();        if(num==null||num.length<size||size<=0) return list;        //int max=num[0];        int index=0;        index=findMax(num,size,0);        list.add(num[index]);        for(int i=size;i<num.length;i++){           if(index<=i-size){index=findMax(num,size,index+1);}//判断是否过期,过期则找到最新的最大值            if(num[index]<num[i])  index=i;            list.add(num[index]);                     }               return list;      }    public int findMax(int [] num,int size,int begin){                 //int max=num[begin];        int index=begin;        for(int i= begin+1;i< begin+size;i++){            if(num[index]<num[i])             {               // max=num[i];                index=i;            }        }        return index;    }}

原创粉丝点击