643. Maximum Average Subarray I

作者: 楷书 | 来源:发表于2018-09-13 08:56 被阅读2次

Maximum Average Subarray I - LeetCode

algorithm - array

这是一道简单的Sliding window的算法。这里的window size = k,所以每次只要left pointer (i) 和 right pointer (j) 分别向后移动一位,然后计算sum,每次和maxSum比较即可。

class Solution {
    func findMaxAverage(_ nums: [Int], _ k: Int) -> Double {
        guard k <= nums.count else {
            return 0
        }

        var sum: Int = 0
        for j in 0..<k {
            sum = sum + nums[j]
        }

        var maxSum = sum
        var i = 0
        for j in k..<nums.count {
            sum = sum - nums[i]
            sum = sum + nums[j]
            i += 1
            maxSum = max(maxSum, sum)
        }

        return (Double)(maxSum) / (Double)(k)
    }
}

相关文章

网友评论

    本文标题:643. Maximum Average Subarray I

    本文链接:https://www.haomeiwen.com/subject/iqwigftx.html