1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
643_子数组最大平均数I.cpp 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
vector<double> dnums(nums.size());
transform(nums.begin(), nums.end(),
dnums.begin(), [=](int b) {
return b / (double)k;
});
double average = 0.0;
for (int i = 0; i < k; i++)
average += dnums[i];
k--;
double ave = average;
for (int i = 1; i + k < dnums.size(); i++) {
// 此处犯过一个错误
// 每次滑动窗口的值都是由 ave 的旧值来进行更新,
// 而 average 记录着之前用来更新的最大值,并不符合两步之间的递推关系
// 所以要对 ave 进行更新,切记!!!
ave = ave - dnums[i-1] + dnums[i+k];
average = average > ave ? average : ave;
// cout << dnums[i] << " : " << average << endl;
}
return average;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
[email protected]:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助