1.暴力
class Solution {
public:
int numberOfArithmeticSlices(vector<int>& A) {
if(A.size()<3) return 0;
int count=0;
for(int s=0;s<A.size()-2;s++){
int d=A[s+1]-A[s];
for(int e=s+2;e<A.size();e++){
if(A[e]-A[e-1]==d) count++;
else break;
}
}
return count;
}
};
2.动态规划
class Solution {
public:
int numberOfArithmeticSlices(vector<int>& A) {
if(A.size()<3) return 0;
int count=0;
vector<int> dp(A.size(),0);
for(int i=2;i<A.size();i++){
if(A[i]-A[i-1]==A[i-1]-A[i-2]) {
dp[i]=1+dp[i-1];
count+=dp[i];
}
}
return count;
}
};