解题思路
因为nums长度为5000,因此可以直接两次遍历就可以找到所有情况
tem中存的是两数之差,总体来讲就是通过数差数组来解决
代码
class Solution {
public int numberOfArithmeticSlices(int[] nums) {
if (nums.length<=1){
return 0;
}
int[] tem = new int[nums.length];
for (int i=1;i<nums.length;i++){
tem[i]=nums[i]-nums[i-1];
}
int ans = 0,n=nums.length;
for (int i=1;i<n;i++){
int num = tem[i];
for (int j=i+1;j<n;j++){
if (tem[j]==num){
ans++;
}else {
break;
}
}
}
return ans;
}
}