446. Arithmetic Slices II - Subsequence
class Solution:
def numberOfArithmeticSlices(self, nums: List[int]) -> int:
ans=0
n=len(nums)
dp =[defaultdict(int) for i in range(n)]
for i in range(1,n):
# print(i,ans)
for j in range(i):
diff=nums[i]-nums[j]
# this is for j,i
dp[i][diff]+=1
ans+=dp[j][diff]
dp[i][diff]+=dp[j][diff]
return ans
注意这个题的状态转移