-
-
Notifications
You must be signed in to change notification settings - Fork 299
/
643.java
36 lines (36 loc) · 1.24 KB
/
643.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
__________________________________________________________________________________________________
sample 2 ms submission
//fix size sliding window
class Solution {
public double findMaxAverage(int[] nums, int k) {
long sum = 0;
//init sliding window
for (int fast = 0; fast < k; fast++) {
sum += nums[fast];
}
long max = sum;
//moving sliding window
for (int fast = k; fast < nums.length; fast++) {
sum += nums[fast] - nums[fast - k];
max = Math.max(max, sum);
}
return max / 1.0 / k;
}
}
__________________________________________________________________________________________________
sample 40028 kb submission
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] = sum[i - 1] + nums[i];
}
double res = sum[k - 1] * 1.0 / k;
for (int i = k; i < nums.length; i++) {
res = Math.max(res, (sum[i] - sum[i - k]) * 1.0 / k);
}
return res;
}
}
__________________________________________________________________________________________________