一、题目
二、思路
1、自己定义数据结构,定义滑动窗口大小、定义窗口的总和、定义储存滑动窗口的数据
2、初始化数据结构
3、当前数量没有达到窗口最大数量,当前数量达到窗口最大数量,把最前一个删除
三、代码
class MovingAverage {
public:
/** Initialize your data structure here. */
MovingAverage(int size) {
m_size=size;
m_sum=0;
}
double next(int val) {
m_sum+=val;
Storage.emplace_back(val);
//当前数量没有达到窗口最大数量
if(Storage.size()<=m_size)
{
double Average=static_cast<double>(m_sum)/Storage.size();
return Average;
}
//当前数量达到窗口最大数量,把最前一个删除
m_sum-=Storage.front();
Storage.erase(Storage.begin());
double Average=static_cast<double>(m_sum)/m_size;
return Average;
}
//定义滑动窗口大小
int m_size;
//定义窗口的总和
int m_sum;
//定义储存滑动窗口的数据
vector<int>Storage;
};
/**
* Your MovingAverage object will be instantiated and called as such:
* MovingAverage* obj = new MovingAverage(size);
* double param_1 = obj->next(val);
*/