计算窗口数量,队列感觉也可

滑动窗口的最大值

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

import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
    public ArrayList<Integer> maxInWindows(int [] num, int size)
    {   ArrayList<Integer> res = new ArrayList<Integer>();
        if(num.length==0||size==0) {
            return res;
        }
        if(size>num.length) {
            return res; 
        }
        int windows_nums = num.length-size+1;
        for(int i =0;i<windows_nums;i++) {
            int start = i;
            int end = i+size;
            int [] subArr = Arrays.copyOfRange(num, start, end);
            res.add(maxFunc(subArr));
        }
        return res;
    }
    int maxFunc(int[] num) {
        int max=num[0];
        for(int i=1;i<num.length;i++) {
            if(max<num[i]) {
                max=num[i];
            }
        }
        return max;
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务