File tree 4 files changed +69
-5
lines changed
solution/0600-0699/0643.Maximum Average Subarray I
4 files changed +69
-5
lines changed Original file line number Diff line number Diff line change 32
32
33
33
<!-- 这里可写通用的实现逻辑 -->
34
34
35
- 滑动窗口
35
+ 滑动窗口。
36
36
37
37
<!-- tabs:start -->
38
38
41
41
<!-- 这里可写当前语言的特殊实现逻辑 -->
42
42
43
43
``` python
44
-
44
+ class Solution :
45
+ def findMaxAverage (self , nums : List[int ], k : int ) -> float :
46
+ s = sum (nums[:k])
47
+ ans = s
48
+ for i in range (k, len (nums)):
49
+ s += (nums[i] - nums[i - k])
50
+ ans = max (ans, s)
51
+ return ans / k
45
52
```
46
53
47
54
### ** Java**
48
55
49
56
<!-- 这里可写当前语言的特殊实现逻辑 -->
50
57
51
58
``` java
52
-
59
+ class Solution {
60
+ public double findMaxAverage (int [] nums , int k ) {
61
+ int s = 0 ;
62
+ for (int i = 0 ; i < k; ++ i) {
63
+ s += nums[i];
64
+ }
65
+ int ans = s;
66
+ for (int i = k; i < nums. length; ++ i) {
67
+ s += (nums[i] - nums[i - k]);
68
+ ans = Math . max(ans, s);
69
+ }
70
+ return ans * 1.0 / k;
71
+ }
72
+ }
53
73
```
54
74
55
75
### ** TypeScript**
Original file line number Diff line number Diff line change 45
45
46
46
## Solutions
47
47
48
+ Slide window.
49
+
48
50
<!-- tabs:start -->
49
51
50
52
### ** Python3**
51
53
52
54
``` python
53
-
55
+ class Solution :
56
+ def findMaxAverage (self , nums : List[int ], k : int ) -> float :
57
+ s = sum (nums[:k])
58
+ ans = s
59
+ for i in range (k, len (nums)):
60
+ s += (nums[i] - nums[i - k])
61
+ ans = max (ans, s)
62
+ return ans / k
54
63
```
55
64
56
65
### ** Java**
57
66
58
67
``` java
59
-
68
+ class Solution {
69
+ public double findMaxAverage (int [] nums , int k ) {
70
+ int s = 0 ;
71
+ for (int i = 0 ; i < k; ++ i) {
72
+ s += nums[i];
73
+ }
74
+ int ans = s;
75
+ for (int i = k; i < nums. length; ++ i) {
76
+ s += (nums[i] - nums[i - k]);
77
+ ans = Math . max(ans, s);
78
+ }
79
+ return ans * 1.0 / k;
80
+ }
81
+ }
60
82
```
61
83
62
84
### ** TypeScript**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public double findMaxAverage (int [] nums , int k ) {
3
+ int s = 0 ;
4
+ for (int i = 0 ; i < k ; ++i ) {
5
+ s += nums [i ];
6
+ }
7
+ int ans = s ;
8
+ for (int i = k ; i < nums .length ; ++i ) {
9
+ s += (nums [i ] - nums [i - k ]);
10
+ ans = Math .max (ans , s );
11
+ }
12
+ return ans * 1.0 / k ;
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def findMaxAverage (self , nums : List [int ], k : int ) -> float :
3
+ s = sum (nums [:k ])
4
+ ans = s
5
+ for i in range (k , len (nums )):
6
+ s += (nums [i ] - nums [i - k ])
7
+ ans = max (ans , s )
8
+ return ans / k
You can’t perform that action at this time.
0 commit comments