LeetCode简单题之子数组最大平均数 I
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之子数组最大平均数 I
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
給你一個由 n 個元素組成的整數(shù)數(shù)組 nums 和一個整數(shù) k 。
請你找出平均數(shù)最大且 長度為 k 的連續(xù)子數(shù)組,并輸出該最大平均數(shù)。
任何誤差小于 10-5 的答案都將被視為正確答案。
示例 1:
輸入:nums = [1,12,-5,-6,50,3], k = 4
輸出:12.75
解釋:最大平均數(shù) (12-5-6+50)/4 = 51/4 = 12.75
示例 2:
輸入:nums = [5], k = 1
輸出:5.00000
提示:
n == nums.length
1 <= k <= n <= 10^5
-10^4 <= nums[i] <= 10 ^4
來源:力扣(LeetCode)
解題思路
??題目給出了子數(shù)組的固定長度k,所以這道題采用最簡單的滑動窗口就能解決。滑動窗口在滑動的時候更新頭部和尾部的指針,并且更新最大總和。
class Solution:def findMaxAverage(self, nums: List[int], k: int) -> float:i,j=0,k-1S=sum(nums[0:k])MAX=Swhile j<len(nums)-1:S-=nums[i]i+=1j+=1S+=nums[j]if S>MAX:MAX=Sreturn MAX/k
總結
以上是生活随笔為你收集整理的LeetCode简单题之子数组最大平均数 I的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之和为零的N个唯一
- 下一篇: LeetCode简单题之唯一摩尔斯密码词