413. 等差数列划分
在一个数组中寻找连续的等差数列。
指针加暴力循环
作为暴力美学传承人,并没有想到用动态规划。这可能就是我和大佬的差距。
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:36.2 MB, 在所有 Java 提交中击败了63.07%的用户
class Solution {
public int numberOfArithmeticSlices(int[] nums) {
int len = nums.length;
int res = 0;
for(int i = 0;i < len;i++){
//第一个指针找到a1
int pointer = nums[i];
if(i+1<len){
//让next为等差数列第二项。
int next = nums[i+1];
//求出等差数列的d。
int cut = next - pointer;
//如果是升序>0, next = next+cut;如果是降序<0,next = next+cut。还有cut=0
//所以不用if去区分 cut>0 cut<0 cut=0。
//借助count计数器计算距离。
for(int j = i+2,count=1;j<len;j++,count++){
if(nums[j]==(next+cut*count)){
res++;
}else{
break;
}
}
}
}
return res;
}
}