LintCode 868. 子数组的最大平均值 JavaScript算法
程序员文章站
2022-03-24 17:52:55
...
描述
给定一个由n个整数组成的数组,找到给定长度k的连续子数组,该子数组具有最大平均值。你需要输出最大平均值。
说明
1 <= k <= n <= 30,000.
给定数组的元素范围是[-10,000, 10,000]。
样例
- 样例1
输入: nums = [1,12,-5,-6,50,3] and k = 4
输出: 12.75
解释: 最大平均为(12-5-6+50)/4 = 51/4 = 12.75
- 样例2
输入: nums = [4,2,1,3,3] and k = 2
输出: 3.00
解释: 最大平均为(3+3)/2 = 6/2 = 3.00
解析
findMaxAverage = function (nums, k) {
if (nums == null || nums.length === 0) return 0
let len = nums.length
let sum = 0
for (let i=0; i<k; i++) {
sum += nums[i]
}
let max = sum
for (let i=k; i<len; i++) {
sum += nums[i] - nums[i-k]
max = Math.max(max, sum)
}
return max / k
}
运行结果
上一篇: Tree 红黑树
下一篇: 带头双向循环链表增删操作以及 相关习题
推荐阅读
-
LintCode 41. 最大子数组 JavaScript算法
-
LintCode 547. 两数组的交集 JavaScript算法
-
九章算法 | Adobe面试题:最大值在界内的子数组个数
-
使用 JavaScript 求出给定数组中的最大乘积子数组的乘积
-
算法 |《剑指offer》面试题 42. 连续子数组的最大和
-
使用 JavaScript 求出给定数组中的最大乘积子数组的乘积
-
LintCode 868. 子数组的最大平均值 JavaScript算法
-
Google/LintCode:M-最大平均值子数组
-
算法 |《剑指offer》面试题 42. 连续子数组的最大和
-
九章算法 | Google 面试题:子数组的最大平均值 II