leetcode 643. Maximum Average Subarray I

本文介绍了一种算法,用于在给定长度k的情况下,从包含n个整数的数组中找到连续子数组,该子数组具有最大平均值,并输出这个最大平均值。通过迭代和滑动窗口的方法,有效地解决了这个问题。

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 = 4
Output: 12.75
Explanation: 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].
      class Solution(object):
          def findMaxAverage(self, nums, k):
              """
              :type nums: List[int]
              :type k: int
              :rtype: float
              """
              # just iterate
              # init: s
              s = sum(nums[:k])
              ans = float(s)/k
              for i in xrange(k, len(nums)):
                  s = s+nums[i]-nums[i-k]
                  ans = max(ans, float(s)/k)
              return ans
                  
      

       

转载于:https://www.cnblogs.com/bonelee/p/9131255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值