leetcode 644: 子数组的最大平均值
2017-07-18 21:59
281 查看
长度为n的数组,找出所有长度至少为k的子数组中,平均值最大的,输出这个最大的平均值。
解法:用二分法查找平均值x,对于每个x去检查是否有子数组的平均值大于x。对于一个给定的x,首先将数组的所有元素减去x,然后看是否有子数组的和大于0即可。用数组S记录a[0]...a[i]的累加和,生成S的时候顺便记录前面的最小的S[j],看看S[i]-S[j]是否大于0即可。代码见官方示例。
解法:用二分法查找平均值x,对于每个x去检查是否有子数组的平均值大于x。对于一个给定的x,首先将数组的所有元素减去x,然后看是否有子数组的和大于0即可。用数组S记录a[0]...a[i]的累加和,生成S的时候顺便记录前面的最小的S[j],看看S[i]-S[j]是否大于0即可。代码见官方示例。
相关文章推荐
- [LeetCode] Maximum Average Subarray I 子数组的最大平均值
- LeetCode 643.Maximum Average Subarray 最大子数组的平均值
- [LeetCode] Maximum Average Subarray II 子数组的最大平均值之二
- leetcode 53. Maximum Subarray-最大子数组|动态规划
- LeetCode-Maximum Product Subarray-最大乘积子数组-情况判断
- LeetCode | 673. Number of Longest Increasing Subsequence中等偏难题 找寻数组里面最大长度的子串的个数
- 【LeetCode-面试算法经典-Java实现】【152-Maximum Product Subarray(子数组的最大乘积)】
- LeetCode Maximum Subarray和编程之美 求数组的子数组之和的最大值
- [LeetCode] Maximum Distance in Arrays 数组中的最大距离
- Java程序:求一个数组中的最大值丶最小值和平均值。
- LeetCode (20) house robber (数组不相邻元素最大值)
- leetcode笔记—生成最大的 数组Create Maximum Number
- LeetCode:152_Maximum Product Subarray | 最大乘积连续子数组 | Medium
- [LeetCode] Maximum Sum of 3 Non-Overlapping Subarrays 三个非重叠子数组的最大和
- 【LeetCode】152. Maximum Product Subarray最大连续子数组乘积
- [C#]判断回文串;数组中最大最小值,平均值
- leetcode_53. Maximum Subarray-子数组最大和
- 编写1个函数. 该函数返回1个整型数组中的最大值、最小值、平均值、累积和.
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- c++ 一维数组 求最大值,平均值,中值,方差