Skip to content

Commit 106e357

Browse files
committed
Runtime: 20 ms (Top 78.88%) | Memory: 8 MB (Top 44.62%)
1 parent d6890fb commit 106e357

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
1+
// Runtime: 20 ms (Top 78.88%) | Memory: 8 MB (Top 44.62%)
12
class Solution {
23
public:
3-
double solve(vector<int>&nums, int index, int k, vector<vector<double>>&dp){
4-
if(index<0)
5-
return 0;
6-
if(k<=0)
7-
return -1e8;
4+
double solve(vector<int>&nums, int index, int k, vector<vector<double>>&dp){
5+
if(index<0)
6+
return 0;
7+
if(k<=0)
8+
return -1e8;
89

9-
if(dp[index][k]!=-1)
10-
return dp[index][k];
10+
if(dp[index][k]!=-1)
11+
return dp[index][k];
1112

12-
double s_sum = 0;
13-
double maxi = INT_MIN;
14-
int cnt = 1;
15-
for(int i=index;i>=0;i--){
16-
s_sum += nums[i];
17-
maxi = max(maxi, (s_sum/cnt) + solve(nums, i-1, k-1, dp));
18-
cnt++;
19-
}
20-
return dp[index][k] = maxi;
21-
}
13+
double s_sum = 0;
14+
double maxi = INT_MIN;
15+
int cnt = 1;
16+
for(int i=index;i>=0;i--){
17+
s_sum += nums[i];
18+
maxi = max(maxi, (s_sum/cnt) + solve(nums, i-1, k-1, dp));
19+
cnt++;
20+
}
21+
return dp[index][k] = maxi;
22+
}
2223

23-
double largestSumOfAverages(vector<int>& nums, int k) {
24-
int n = nums.size();
25-
vector<vector<double>>dp(n, vector<double>(k+1, -1));
26-
return solve(nums, n-1, k, dp);
27-
}
24+
double largestSumOfAverages(vector<int>& nums, int k) {
25+
int n = nums.size();
26+
vector<vector<double>>dp(n, vector<double>(k+1, -1));
27+
return solve(nums, n-1, k, dp);
28+
}
2829
};

0 commit comments

Comments
 (0)