leetcode day20 Maximum Average Subarray

题目描述:给定K,求出array里面k大小的子数组最大平均值
题目思路:两种方法:
1、给另一个数组diff_array, 计算每个元素i与i-k的差,然后计算这个数组的最大连续数组值,再与原数组的前k项之和加起来则为最大的和。

class Solution:
    def findMaxAverage(self, nums: List[int], k: int) -> float:
        diff_array = []
        sum_1 = 0
        for w in range(k):
            sum_1 += nums[w]
        for i in range(k, len(nums)):
            diff_array.append(nums[i] - nums[i-k])
        diff_cur = 0
        diff_max = 0
        for j in range(len(diff_array)):
            diff_cur +=diff_array[j]
            if diff_max <diff_cur:
                diff_max = diff_cur
        return (diff_max + sum_1)/k

2、直接计算每个k个元素的子数组的和,进行比较和返回
没写这个代码,我觉得有点傻逼就没做

猜你喜欢

转载自blog.csdn.net/qq_39029148/article/details/88912121