Description
Submission
class Solution { int comb(int n) { return (1 + n - 2) * (n - 2) / 2; } public: int numberOfArithmeticSlices(vector<int>& nums) { int diff = 100000; int cur = -diff; int cnt = 1; int ret = 0; for(int i = 1; i < nums.size(); ++i) { cur = nums[i] - nums[i-1]; if(cur != diff) { diff = cur; if(cnt >= 2) { ret += comb(cnt + 1); } cnt = 1; } else { ++cnt; } } if(cnt >= 2) { ret += comb(cnt + 1); } return ret; } }; // 1 2 3 4