leetcode 413 等差数列划分
等差数列关系,S>=2 Si-S(i-1)=S(i-1)-S(i-2);
dp[0]=dp[1]=0(因为必须为三个数) dp关系式 若是满足Si-S(i-1)=S(i-1)-S(i-2);则有dp[i]=dp[i-1]+1;理解为若该三个数为等差则加上前一个等差项和。
class Solution { public: vector<int> a; int numberOfArithmeticSlices(vector<int>& A) { if(A.empty())return 0; int sum=0; int len=A.size(); int dp[len]={0}; for(int i=2;i<A.size();i++) { if(A[i]-A[i-1]==A[i-1]-A[i-2]) { dp[i]=dp[i-1]+1; } } for(int i=0;i<len;i++) { sum+=dp[i]; } return sum; } };