413. Arithmetic Slices¶
Difficulty: Medium
LeetCode Problem View on GitHub
413. Arithmetic Slices
Medium
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.
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
Constraints:
1 <= nums.length <= 5000-1000 <= nums[i] <= 1000
Solution¶
class Solution {
public int numberOfArithmeticSlices(int[] nums) {
int n = nums.length;
int count = 0;
for (int i = 0; i < n; i++) {
ArrayList<Integer> temp = new ArrayList<>();
for (int j = i; j < n; j++) {
temp.add(nums[j]);
if (check(temp) == true) count++;
}
}
return count;
}
private boolean check(ArrayList<Integer> res) {
int n = res.size();
if (n < 3) return false;
int diff = res.get(1) - res.get(0);
for (int i = 0; i < n - 1; i++) {
int next = res.get(i + 1);
int current = res.get(i);
if (next - current != diff) return false;
}
return true;
}
}
Complexity Analysis¶
- Time Complexity:
O(?) - Space Complexity:
O(?)
Approach¶
Detailed explanation of the approach will be added here