zoukankan      html  css  js  c++  java
  • 剑指offer 面试题65 滑动窗口的最大值

    import java.awt.print.Printable;
    import java.beans.VetoableChangeListenerProxy;
    import java.lang.reflect.Array;
    import java.text.DateFormatSymbols;
    import java.text.spi.NumberFormatProvider;
    import java.util.ArrayDeque;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Deque;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    import java.util.TreeSet;
    
    import javax.naming.ldap.SortControl;
    import javax.print.attribute.standard.NumberUpSupported;
    import javax.print.attribute.standard.RequestingUserName;
    
    import org.omg.PortableInterceptor.INACTIVE;
    
    public class Solution {
       public ArrayList<Integer> maxInWindows(int [] num, int size)
        {
            ArrayList<Integer> maxWindows=new ArrayList<>();
            Deque<Integer> index=new ArrayDeque<>();
            if(num.length>=size&&size>=1)
            {
            	for(int i=0;i<size;i++)
            	{
            		if(!index.isEmpty()&&num[i]>=num[index.getLast()])
            			index.removeLast();
            		index.addLast(i);		
            	}
            	maxWindows.add(num[index.getFirst()]);
            	for(int i=size;i<num.length;i++)
            	{
    
            		while(!index.isEmpty()&&num[index.getLast()]<=num[i])
            		{
            			int ix=index.getLast();
            			index.removeLast();
            		}
            		if(!index.isEmpty()&&index.peek()<=i-size)
            			index.removeFirst();
            		index.addLast(i);
            		maxWindows.add(num[index.peek()]);
            	}
            		
            }
            return maxWindows;
        }
    	
    }
    

      

  • 相关阅读:
    Android--Service之AIDL传递复杂对象
    Android--广播BroadcastReceiver
    Android--拦截系统BroadcastReceiver
    Android--操作图片Exif信息
    Android--Activity的启动模式
    Android--Task和BackStack高级
    终于完成了Josephus的C语言实现啦~~
    如何将.SQL文件的数据导入到Mysql的数据库中
    什么情况下要加上【javascript:】
    路径的写法
  • 原文地址:https://www.cnblogs.com/wuxiangli/p/6094061.html
Copyright © 2011-2022 走看看