【Lintcode】604. Window Sum
程序员文章站
2024-03-05 23:57:19
...
题目地址:
https://www.lintcode.com/problem/window-sum/description
给定一个数组,再给定一个正整数,求数组中所有长度为的滑动窗口数字之和。
直接算即可。代码如下:
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 == null || nums.length == 0) {
return nums;
}
int[] res = new int[nums.length - k + 1];
int sum = 0;
for (int i = 0; i < k; i++) {
sum += nums[i];
}
for (int i = 0; i < res.length; i++) {
res[i] = sum;
// 这里由于是先赋值后更新,在更新到最后的时候会越界,所以要判断一下
if (i != res.length - 1) {
sum += nums[i + k] - nums[i];
}
}
return res;
}
}
时间复杂度,空间。