LintCode 604. Window Sum

題目:
Given an array of n integer, and a moving window(size k), move the window at each iteration from the start of the array, find the sum of the element inside the window at each moving.

思路:

  1. 先算第一個框框總和
  2. 接下來只要把框框+後一個,-前一個,就可以得到一個新的總和

代碼:

public:
    /**
     * @param nums: a list of integers.
     * @param k: length of window.
     * @return: the sum of the element inside the window at each moving.
     */
    vector<int> winSum(vector<int> &nums, int k) {
        // write your code here
        if(nums.size()==0 || nums.size() < k || k == 0)
            return {};
        
        int currSum =0;
        vector<int> ans;
        
        for(int i =0; i<k; i++){
            currSum+= nums[i];
        }
        ans.push_back(currSum);
        
        for(int i=k; i<nums.size(); i++){
            currSum+= nums[i];
            currSum-= nums[i-k];
            ans.push_back(currSum);
        }
       
        return ans;
       
    }
};```
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,438评论 0 10
  • 不看人群 不一个人 不是不想 是不愿 没有离开后的表面歇斯底里 却将一切画面深夜投影屋顶 爱情 俗气又老套的话题 ...
    以此之阅读 210评论 2 1
  • 今天这个学习和冥想解决了很多年来,我的困惑!眉心轮发达的人,可以看到灵界的事物!我们家族的人应该说眉心轮都特别发达...
    娇青阅读 2,533评论 0 2