i>2时:A[i]构成等差只与 A[i-1]有关。而且以A[i]结尾的等差数列个数会比A[i-1] 多一个。
class Solution {
public:
int numberOfArithmeticSlices(vector<int>& A) {
int dp = 0;
int sum = 0;
for (int i = 2; i < A.size(); i++) {
if (A[i] - A[i - 1] == A[i - 1] - A[i - 2]) {
dp = 1 + dp;
sum += dp;
} else
dp = 0;
}
return sum;
}
};
可以借鉴:https://leetcode-cn.com/problems/arithmetic-slices/solution/deng-chai-shu-lie-hua-fen-by-leetcode/