643. Maximum Average Subarray I
2018-09-13 本文已影响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)
}
}