446. Arithmetic Slices II - Subsequence
Read the full problem statement on LeetCode.
Difficulty: hard Acceptance: 55% Topics: Array, Dynamic Programming
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(n^2)
# Space: O(n * d)
import collections
class Solution(object):
def numberOfArithmeticSlices(self, A):
"""
:type A: List[int]
:rtype: int
"""
result = 0
dp = [collections.defaultdict(int) for i in xrange(len(A))]
for i in xrange(1, len(A)):
for j in xrange(i):
diff = A[i]-A[j]
dp[i][diff] += 1
if diff in dp[j]:
dp[i][diff] += dp[j][diff]
result += dp[j][diff]
return result
Solution from kamyu104/LeetCode-Solutions · MIT