leetcode 643.子数组最大平均数
程序员文章站
2022-07-15 23:24:21
...
原题如下
题解
方法一
求和法
/*求和法
*作者@v7fgg
*执行用时 :2 ms, 在所有 Java 提交中击败了99.91%的用户
*内存消耗 :43 MB, 在所有 Java 提交中击败了16.67%的用户
*2020年6月7日 20:19
*/
class Solution {
public double findMaxAverage(int[] nums, int k) {
int sum=0;
for(int i=0;i<k;i++){
sum+=nums[i];
}
int ans=sum;
for(int j=k;j<nums.length;j++){
sum=sum+nums[j]-nums[j-k];
ans=Math.max(ans,sum);
}return (double)ans/k;
}
}
方法二
数组作差法
/*数组作差法
*作者@v7fgg
*执行用时 :4 ms, 在所有 Java 提交中击败了72.12%的用户
*内存消耗 :42.9 MB, 在所有 Java 提交中击败了16.67%的用户
*2020年6月7日 20:32
*/
class Solution {
public double findMaxAverage(int[] nums, int k) {
int sum[]=new int[nums.length];
sum[0]=nums[0];
for(int i=1;i<nums.length;i++){
sum[i]=nums[i]+sum[i-1];
}
int ans=sum[k-1];
for(int j=k;j<nums.length;j++){
ans=Math.max(ans,sum[j]-sum[j-k]);
}return (double)ans/k;
}
}
上一篇: LintCode: 99. 重排链表
下一篇: 643.子数组最大平均数I