剑指 Offer II 041. 滑动窗口的平均值

剑指 Offer II 041. 滑动窗口的平均值,第1张


c++实现

class MovingAverage {
private:
    int len =0;
    queue<int> nums;
    double sum =0;
public:
    MovingAverage(int size) {
        len = size;
    }
    
    double next(int val) {
        nums.push(val);
        sum += val;
        if (nums.size()>len) {
            sum -= nums.front();
            nums.pop();
        }
        return sum/nums.size();
    }
};

golang实现

type MovingAverage struct {
    len int
    sum int
    nums  []int
}
func Constructor(size int) MovingAverage {
    return MovingAverage{
        len:size,
        sum:0,
        nums:[]int{}}
}

func (this *MovingAverage) Next(val int) float64 {
    this.nums = append(this.nums,val)
    this.sum += val
    if (len(this.nums)>this.len){
        remove := this.nums[0]
        this.sum -= remove
        this.nums=this.nums[1:]
    }
    //刚开始sum不能定义为float64类型,与val int类型参与运算时会出现类型不匹配。


所以需要最后的强转。


c++自动类型转换 return float64(this.sum) / float64(len(this.nums)) }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/579176.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存