413. 等差数列划分
思路:等差数列的特点就是相邻元素之间的差是相等的。先对数组nums进行处理,值为相邻元素之间的差。然后答案就变为:长度>=2的相等(里面元素值都相同)子数组的个数。使用双指针就ok了。
class Solution {
public:
int numberOfArithmeticSlices(vector<int>& nums) {
for(int i=1;i<nums.size();i++){
nums[i-1]=nums[i]-nums[i-1];
}
int ans=0;
int l=0;
for(int r=1;r<nums.size()-1;r++){
if(nums[r]!=nums[l]){
l=r;
}
ans+=r-l;
}
return ans;
}
};