g0401_0500.s0413_arithmetic_slices.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0401_0500.s0413_arithmetic_slices;
// #Medium #Array #Dynamic_Programming #Algorithm_II_Day_14_Dynamic_Programming
// #Dynamic_Programming_I_Day_10 #2022_07_16_Time_0_ms_(100.00%)_Space_42.6_MB_(14.82%)
/**
* 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`
**/
public class Solution {
public int numberOfArithmeticSlices(int[] nums) {
int sum = 0;
int curr = 0;
for (int i = 2; i < nums.length; i++) {
if (nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]) {
curr++;
sum += curr;
} else {
curr = 0;
}
}
return sum;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy