!!!!!【此文章仅仅用于记录自己做题,文章毫无用处⚆_⚆】
目录
一、题目![](https://i-blog.csdnimg.cn/blog_migrate/9282e0cd7a1cb4f59bf3c86bcad4a8c4.png)
二、解答
方法一:差分+计数(官方解答)
只看解答和代码看不明白,用笔纸划拉划拉就明白了
方法二:可以用动态规划(感觉差不多)
三、代码
第一种方法的代码
class Solution {
public int numberOfArithmeticSlices(int[] nums) {
int n=nums.length;
int ans=0;//记录总数量
if(n<=2) return 0;//要增加判断条件,因为最少三个数,否则会出错
int d=nums[1]-nums[0];
int t=0;
for(int i=2;i<n;i++)
{
if(nums[i]-nums[i-1]==d)
t++;
else //不满足
{
d=nums[i]-nums[i-1];
t=0;
}
ans+=t;
}
return ans;
}
}