大厂常见笔试题 滑动窗口内数的和

举报
风吹稻花香 发表于 2021/06/05 00:02:19 2021/06/05
【摘要】 大厂常见笔试题,我以为出一个很难的题,结果出了一个基础题, 给你一个大小为n的整型数组和一个大小为k的滑动窗口,将滑动窗口从头移到尾,输出从开始到结束每一个时刻滑动窗口内的数的和。 样例 对于数组 [1,2,7,8,5] ,长度为n,滑动窗口大小k= 3 。 1 + 2 + 7 = 10 2 + 7 + 8 = 17 7 + 8 + 5 = 20 返回 [10,17,20...

大厂常见笔试题,我以为出一个很难的题,结果出了一个基础题,

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

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

 

分析:先算第一组滑动窗口计算,1+2+7=10

滑动次数为n-k。

在后面的n-k-1次滑动计算时,每次减少第一位,增加末位。

代码:


  
  1. #ifndef C604_H
  2. #define C604_H
  3. #include<iostream>
  4. #include<vector>
  5. using namespace std;
  6. class Solution {
  7. public:
  8.     /**
  9.     * @param nums: a list of integers.
  10.     * @param k: length of window.
  11.     * @return: the sum of the element inside the window at each moving.
  12.     */
  13.   vector<int> winSum(vector<int>& nums, int k) {
  14. // write your code here
  15. vector<int> res;
  16. //若nums为空或k<=0,返回空
  17. if (nums.empty() || k <= 0)
  18. retu

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/116243998

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。