Skip to content

Commit 9c34b05

Browse files
committed
Commit
1 parent 7c7d11b commit 9c34b05

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

Leetcode/LargestSumOfAverages.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public:
3+
double largestSumOfAverages(vector<int>& A, int K) {
4+
5+
vector<double>P(A.size()+1);
6+
vector<double>dp(A.size()+1,0);
7+
int n = A.size();
8+
9+
for(int i=0;i<n;i++){
10+
P[i+1] = P[i]+A[i];
11+
}
12+
13+
for(int i=0;i<n;i++){
14+
dp[i] = (P[n]-P[i])/(n-i);
15+
}
16+
17+
for(int i=0;i<K-1;i++){
18+
for(int j=0;j<n;j++){
19+
for(int k=j+1;k<n;k++){
20+
dp[j] = max(dp[j],(P[k]-P[j])/(k-j)+dp[k]);
21+
}
22+
}
23+
}
24+
25+
return dp[0];
26+
}
27+
};
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class Solution {
2+
public:
3+
unordered_map<int,vector<int>>mp;
4+
5+
int check(int x,int curr){
6+
auto itr = mp[x];
7+
8+
for(auto i=itr.begin();i!=itr.end();i++){
9+
if(*i>curr){
10+
return *i;
11+
}
12+
}
13+
14+
return -1;
15+
}
16+
17+
int longestArithSeqLength(vector<int>& arr) {
18+
19+
for(int i=0;i<arr.size();i++){
20+
mp[arr[i]].push_back(i);
21+
}
22+
23+
int ans = 1;
24+
25+
for(int i=0;i<arr.size();i++){
26+
for(int j=i+1;j<arr.size();j++){
27+
int cnt = 2;
28+
int curr = j;
29+
int diff = arr[j]-arr[i];
30+
31+
32+
while(mp.find(arr[curr]+diff)!=mp.end()){
33+
curr = check(arr[curr]+diff,curr);
34+
if(curr == -1)
35+
break;
36+
cnt++;
37+
}
38+
39+
40+
ans = max(ans,cnt);
41+
}
42+
}
43+
44+
return ans;
45+
46+
}
47+
};

0 commit comments

Comments
 (0)