滑动窗口的最大值
来源:互联网 发布:店铺缴费软件 编辑:程序博客网 时间:2024/06/09 00:39
网址:点击打开链接
思路:先求出第一个窗口的最大值,并记录其下标。之后的每一个窗口的计算,都可以利用前一个窗口的计算结果(若前一个窗口的最大值的下标位于当前窗口内,而且此发生的概率为(k-1)/k,k越大其可能性越高),只需比较前一个窗口的最大值和当前窗口的最后一个值即可得出当前窗口的最大值。
代码:
public class Solution { /** * @param nums: A list of integers. * @return: The maximum number inside the window at each moving. */ public ArrayList<Integer> maxSlidingWindow(int[] nums, int k) { // write your code here ArrayList<Integer> R = new ArrayList<Integer>(); if(nums.length < k||k==0) return R; int max=Integer.MIN_VALUE,id=0; for(int i=0;i<k&&i<nums.length;++i) if(nums[i]>max){ max = nums[i]; id = i; } R.add(max); for(int i=k;i<nums.length;++i){//end with k if(id>i-k){ if(max < nums[i]){ max = nums[i]; id = i; } R.add(max); }else{ max = Integer.MIN_VALUE; for(int j=i-k+1;j<=i;++j) if(nums[j]>max){ max = nums[j]; id = j; } R.add(max); } } return R; }}
0 0
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- 滑动窗口的最大值
- GridView的简单使用
- js第七节-运算符,流程控制
- 图的STL邻接表表示
- leetcode Roman to Integer(13)
- Unity frameIndex = (int)(timer / (1f / framePerSecond));
- 滑动窗口的最大值
- cocos2d-x 2.x动画、定时器、音乐音效
- VLC player
- 颠覆教育的新方式
- iOS隐藏导航栏尽量用set方法,不要用点。。。会出BUG。。。
- Android 学习笔记一 之 Eclipse篇
- activiti工作流与spring整合
- Android Context简介
- 鼠标移上图片放大弹出文字半透明图层效果