Skip to content

Commit 3960962

Browse files
authored
446. Arithmetic Slices II - Subsequence
1 parent 2beab03 commit 3960962

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution {
2+
public:
3+
int numberOfArithmeticSlices(vector<int>& A) {
4+
int n = A.size();
5+
vector<map<int, int>> dp(n);
6+
int ans = 0;
7+
8+
for (int i = 0; i < n; i++) {
9+
// dp[x][delta] += dp[y][delta] + 1(y∈[0, x - 1])
10+
for (int j = 0; j < i; j++) {
11+
long delta = (long)A[i] - (long)A[j];
12+
if (delta > INT_MAX || delta < INT_MIN) continue;
13+
dp[i][delta]++;
14+
if (dp[j].find(delta) != dp[j].end()) {
15+
dp[i][delta] += dp[j][delta];
16+
ans += dp[j][delta];
17+
}
18+
}
19+
20+
}
21+
22+
return ans;
23+
}
24+
};

0 commit comments

Comments
 (0)