Arithmetic Slices(dp)
1, 3, 5, 7, 9
7, 7, 7, 7
3, -1, -5, -91, 1, 2, 5, 7A = [1, 2, 3, 4]
return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself.Last updated
1, 3, 5, 7, 9
7, 7, 7, 7
3, -1, -5, -91, 1, 2, 5, 7A = [1, 2, 3, 4]
return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself.Last updated
class Solution:
def numberOfArithmeticSlices(self, A):
"""
:type A: List[int]
:rtype: int
"""
if not A:
return 0
sum,cur=0,0
for j in range(2,len(A)):
if A[j-1]-A[j-2] == A[j]-A[j-1]:
cur+=1 #f[i]=cur, 新加入数会让原先==2的变成合法,所以++1,同时以前的arr count不变,末尾+new element都变成新arr了,但是count还是和f[i-1]一样的
sum+=cur #加入当前的count
else:
cur=0
return sum