题目:
如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。
例如,以下数列为等差数列:
1, 3, 5, 7, 9
7, 7, 7, 7
3, -1, -5, -9
以下数列不是等差数列。
1, 1, 2, 5, 7
思路:
数列是要连续的,子序列不需要
逐渐递归缩短数列计算和
class Solution {
int sum = 0;
public int numberOfArithmeticSlices(int[] A) {
helper(A,A.length-1);
return sum;
}
public int helper(int[] A,int n){
if(n<2) return 0;
int num = 0;
if(A[n]-A[n-1]==A[n-1]-A[n-2]){
num = helper(A,n-1)+1;
sum += num;
}else
helper(A,n-1);
return num;
}
}