1.设一个boolean标志maxIsStart,代表最大值max是不是这个窗口最左边的值,也就是窗口开始位置的值. 3.接下来将窗口向右滑动 left++ right++; 否则,遍历当前窗口并求出当前窗口的最大值max 5.将maxIsStart设置成对应值 6.窗口继续向右滑动,重复第4步和第5步 完整代码
剑指offer 滑动窗口的最大值
2.先求出第一个滑动窗口的最大值max,判断max是不是这个窗口最左边的值,如果是则maxIsStart=true;boolean maxIsStart=max==nums[left]?true:false;
4.如果上一个窗口的最大值max不是上一个窗口最左边的值,则只需要比较新加进窗口的值(当前窗口的最右边 的值)和上一个窗口的max的大小.max=Math.max(max,nums[i]);
max=nums[left]; for(int i=left+1;i<=right;i++){ max=Math.max(max,nums[i]); }
boolean maxIsStart=max==nums[left]?true:false;
java class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if(nums.length==0){ return new int[0]; } int left=0; int right=k-1; int[] result=new int[nums.length-k+1];//存储结果 int max=nums[left]; for(int i=left;i<=right;i++){ max=Math.max(max,nums[i]); } result[left]=max; boolean maxIsStart=max==nums[left]?true:false; left++; right++; while(right<nums.length){ if(maxIsStart){ max=nums[left]; for(int i=left+1;i<=right;i++){ max=Math.max(max,nums[i]); } }else{ max=Math.max(max,nums[right]); } result[left]=max; maxIsStart=max==nums[left]?true:false; left++; right++; } return result; } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算