当前位置: 面试刷题>> 滑动窗口内数的和 (经典算法题500道)


### 题目描述补充 **题目:滑动窗口内数的和** 给定一个整数数组 `nums` 和一个整数 `k`,要求编写一个函数来计算数组 `nums` 中每个长度为 `k` 的连续子数组(滑动窗口)的元素和。 **示例**: - 输入:`nums = [1,2,3,4,5]`,`k = 3` - 输出:`[6, 9, 12]` 解释: - 第一个窗口 [1,2,3],和为 6 - 第二个窗口 [2,3,4],和为 9 - 第三个窗口 [3,4,5],和为 12 ### PHP 代码示例 ```php function slidingWindowSum($nums, $k) { $n = count($nums); $windowSum = array_sum(array_slice($nums, 0, $k)); // 初始化窗口和 $result = [$windowSum]; // 存储结果 for ($i = $k; $i < $n; $i++) { // 减去窗口最左边的元素,并加上新进入窗口的元素 $windowSum = $windowSum - $nums[$i - $k] + $nums[$i]; $result[] = $windowSum; } return $result; } // 示例 $nums = [1,2,3,4,5]; $k = 3; print_r(slidingWindowSum($nums, $k)); ``` ### Python 代码示例 ```python def sliding_window_sum(nums, k): window_sum = sum(nums[:k]) # 初始化窗口和 result = [window_sum] # 存储结果 for i in range(k, len(nums)): # 减去窗口最左边的元素,并加上新进入窗口的元素 window_sum = window_sum - nums[i - k] + nums[i] result.append(window_sum) return result # 示例 nums = [1, 2, 3, 4, 5] k = 3 print(sliding_window_sum(nums, k)) ``` ### JavaScript 代码示例 ```javascript function slidingWindowSum(nums, k) { let windowSum = nums.slice(0, k).reduce((a, b) => a + b, 0); // 初始化窗口和 let result = [windowSum]; // 存储结果 for (let i = k; i < nums.length; i++) { // 减去窗口最左边的元素,并加上新进入窗口的元素 windowSum = windowSum - nums[i - k] + nums[i]; result.push(windowSum); } return result; } // 示例 const nums = [1, 2, 3, 4, 5]; const k = 3; console.log(slidingWindowSum(nums, k)); ``` **码小课网站中有更多相关内容分享给大家学习**,包括算法基础、数据结构、面试技巧等,欢迎访问码小课网站深入学习。
推荐面试题