题目链接
这里dp定义的到第i个数能组成的最小三位的等差数列有多少,如果当前的数和前一个数的差等于前一个数和前前个数的差一样,那么他们就是三位等差数列,例如1,2,3
3-2=2-1
public int numberOfArithmeticSlices(int[] A) {
int[] dp = new int[A.length];
int sum = 0;
for (int i = 2; i < dp.length; i++) {
if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) {
dp[i] = dp[i - 1]+1;
sum += dp[i];
}
}
return sum;
}