难度:中等。
标签:数组,动态规划。
正确解法:
class Solution {
public:
int numberOfArithmeticSlices(vector<int>& nums) {
int n = nums.size();
int ans = 0;
int len = 0;
for(int i = 2; i < n; ++i){
if(nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]){
if(len == 0)len = 3;
else len += 1;
}
else if(len > 0){
ans += (double)(len - 1) / 2.0 * (len - 2);
len = 0;
}
}
if(len > 0){
ans += (double)(len - 1) / 2.0 * (len - 2);
}
return ans;
}
};
结果: