题解 | #滑动窗口的最大值#

滑动窗口的最大值

http://www.nowcoder.com/practice/1624bc35a45c42c0bc17d17fa0cba788

public class Solution {
    public ArrayList<Integer> maxInWindows(int [] num, int size) {
            ArrayList <Integer> result=new ArrayList<>();
            int maxindex=findmax(Arrays.copyOfRange(num,0,size),size);
            int res=num[maxindex];
            result.add(res);
            for(int i=size;i<num.length;i++){
                    if(i-maxindex==size){
                            maxindex=findmax(Arrays.copyOfRange(num,i-size+1,i+1),size)+i-size+1;                            
                    }
                    if(num[i]>=num[maxindex]){
                            maxindex=i;
                    }
                    res=num[maxindex];
                    result.add(res);
            }
            return result;
    }
    public int findmax(int[] num,int size){
            int max=0;
            int index=0;
            for(int i=0;i<size;i++){
                    if(num[i]>max){
                            max=num[i];
                            index=i;
                    }                 
            }
            return index;
    } 
}

暴力法,遍历每一次的窗口滑动确定最大值的index。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:10
直接上图
牛客13578115...:改得一般,不值80
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务