LeetCode 643. Maximum Average Subarray I
来源:互联网 发布:数据库中的罗马时间 编辑:程序博客网 时间:2024/06/05 20:01
题目:
Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.
Example 1:
Input: [1,12,-5,-6,50,3], k = 4Output: 12.75Explanation: Maximum average is (12-5-6+50)/4 = 51/4 = 12.75
Note:
1. 1 <= k <= n <= 30,000.
2. Elements of the given array will be in the range [-10,000, 10,000].
思路:
先求出最前面k区间的和,如果k和nums的长度相等,直接除以k返回就好了。如果不是,区间后移更新sum_now,此时将sum_max和sum_now比较,再更新sum_max和sum_before。
代码:
class Solution {public: double findMaxAverage(vector<int>& nums, int k) { double sum_before=0;//前一个k长度区间最大和 double sum_now=0;//当前k长度区间最大和 double sum_max=0;//所有k长度区间的最大和 int len=nums.size(); for(int i=0;i<k;++i){//先计算前k个值 sum_before+=nums[i]; } if(len==k){//如果nums的长度和k相等,直接和除以k return sum_before/k; } sum_max=sum_before;//初始化 for(int j=0;j<len-k;++j){ sum_now=sum_before+nums[k+j]-nums[j];//当前k长度区间的最大值为加上K区间的后一个,减去最前面的一个 sum_max=(sum_now>sum_max)?sum_now:sum_max;//更新sum_max sum_before=sum_now;//更新sum_before } return sum_max/k; }};
输出结果: 172ms
阅读全文
0 0
- LeetCode 643. Maximum Average Subarray I
- [LeetCode]643. Maximum Average Subarray I
- [LeetCode] 643. Maximum Average Subarray I
- LeetCode 643. Maximum Average Subarray I
- leetcode 643. Maximum Average Subarray I
- [LeetCode]643. Maximum Average Subarray I
- leetcode 643. Maximum Average Subarray I
- LeetCode 643. Maximum Average Subarray I
- leetcode 643. Maximum Average Subarray I
- LeetCode 643. Maximum Average Subarray I
- LeetCode-643. Maximum Average Subarray I
- leetcode[Maximum Average Subarray I]
- leetCode-Maximum Average Subarray I
- 643. Maximum Average Subarray I
- 643. Maximum Average Subarray I
- 643. Maximum Average Subarray I
- 643. Maximum Average Subarray I
- 643. Maximum Average Subarray I
- Excel VBA 单元格信息
- 《在绝望中寻求希望》---读后感
- error LNK2019: 无法解析的外部符号 __vsnwprintf_s
- 20170712——今日总结,画PCB
- 三:redis哨兵模式实现主从故障切换1
- LeetCode 643. Maximum Average Subarray I
- opencv的逻辑运算bitwise详解
- Java入门学习-Hello Spring Boot
- Q128:PBRT-V3,“体渲染”积分器的“传播方程”(15.1章节)
- Java语法基础之循环控制
- Python2.7.13中文乱码问题
- Activity
- 【数据结构】二叉树概述
- C++效率