604. 滑动窗口内数的和

604. 滑动窗口内数的和 

给你一个大小为n的整型数组和一个大小为k的滑动窗口,将滑动窗口从头移到尾,输出从开始到结束每一个时刻滑动窗口内的数的和。

样例

对于数组 [1,2,7,8,5] ,滑动窗口大小k= 3 。
1 + 2 + 7 = 10
2 + 7 + 8 = 17
7 + 8 + 5 = 20
返回 [10,17,20]


public class Solution {
    /**
     * @param nums: a list of integers.
     * @param k: length of window.
     * @return: the sum of the element inside the window at each moving.
     */
    public int[] winSum(int[] nums, int k) {
        // write your code here
        if(nums.length==0){
            return nums;
        }
        ArrayList list = new ArrayList();
        int sum = 0;
        for(int i = 0; i < nums.length-(k-1);i++){
            sum = 0;
            int j = i;
            int x=k;
            while(x>0){
                sum +=nums[j];
                j++;
                x--;
            }
            list.add(sum);
        }
        int a[] = new int[list.size()];
        for(int i = 0; i < a.length; i++){
            a[i]=(int)list.get(i);
        }
        return a;
    }
}

你可能感兴趣的:(Lintcode)