# 413. Arithmetic Slices

## 1. Question

An integer array is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.

• For example, [1,3,5,7,9],[7,7,7,7], and [3,-1,-5,-9] are arithmetic sequences. Given an integer array nums, return the number of arithmetic subarrays of nums.

A subarray is a contiguous subsequence of the array.

## 2. Examples

Example 1:

Input: nums = [1,2,3,4]
Output: 3
Explanation: We have 3 arithmetic slices in nums: [1, 2, 3], [2, 3, 4] and [1,2,3,4] itself.


Example 2:

Input: nums = [1]
Output: 0


## 3. Constraints

• 1 <= nums.length <= 5000
• -1000 <= nums[i] <= 1000

## 5. Solutions

class Solution {
public int numberOfArithmeticSlices(int[] nums) {
if (null == nums || nums.length < 3) {
return 0;
}
int res = 0;
int d = nums[1] - nums[0];
int k = 0;

for (int i = 2; i < nums.length; i++) {
if (nums[i] - nums[i - 1] == d) {
k++;
} else {
d = nums[i] - nums[i - 1];
k = 0;
}
res += k;
}
return res;
}
}