LeetCode题目记录-643. 子数组最大平均数 I(C++代码实现)

Posted wyy_persist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题目记录-643. 子数组最大平均数 I(C++代码实现)相关的知识,希望对你有一定的参考价值。

题目链接:643. 子数组最大平均数 I - 力扣(LeetCode) (leetcode-cn.com)

题目要求:

 解题思路:

思路:
1.得到数组的前缀和;
2.然后求得相差为4的两个前缀和的差,即为该长度为4的子序列的和;
3.最后比较sum 和 nums[k]的大小,得到较大的(因为在2中的寻找最大sum的时候并没有比较与nums[k]和nums[0]之间的和)
4.最后返回sum / k即可;

C++代码实现:

class Solution 
public:

    double findMaxAverage(vector<int>& nums, int k) 
        //使用简单的最大平均数相当于总和最大
        int n = nums.size();
        if(n == 1)
            return nums[0];
        

       double sum = INT_MIN;

       //记录前缀和
       for(int i = 1;i < n;i++)
           nums[i] = nums[i] + nums[i - 1];
       

       //然后求得长度为4的连续子序列的最大和
       for(int i = k;i < n;i++)
           if(sum < nums[i] - nums[i - k]) sum = nums[i] - nums[i - k];
       

       if(sum < nums[k - 1]) sum = nums[k - 1];
       
        return sum / k;

    
;

AC截图:

本题解仅作为个人复习查看使用,并无他用。  

以上是关于LeetCode题目记录-643. 子数组最大平均数 I(C++代码实现)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 643.子数组最大平均数I

解题报告Leecode 643. 子数组最大平均数 I——Leecode 刷题系列

解题报告Leecode 643. 子数组最大平均数 I——Leecode 刷题系列

数组643. 子数组最大平均数 I

leetcode 643. 子数组最大平均数 I ------滑动窗口篇六,前缀和篇二

LeetCode 643. Maximum Average Subarray I (最大平均值子数组之一)