Algorithm


Problem Name: 413. Arithmetic Slices

Problem Link: https://leetcode.com/problems/arithmetic-slices/

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

 

Code Examples

#1 Code Example with Java Programming

Code - Java Programming


class Solution {
  public int numberOfArithmeticSlices(int[] nums) {
    int[] dp = new int[nums.length];
    int count = 0;
    for (int i = 2; i  <  dp.length; i++) {
      if (nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]) {
        dp[i] = dp[i - 1] + 1;
        count += dp[i];
      }
    }
    return count;
  }
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [1,2,3,4]

Output

x
+
cmd
3

#2 Code Example with Javascript Programming

Code - Javascript Programming


const numberOfArithmeticSlices = function(A) {
  const arr = [];
  let count = 0;
  for (let i = 1; i  <  A.length - 1; i++) {
    if (A[i] - A[i - 1] === A[i + 1] - A[i]) {
      count += 1;
    } else {
      arr.push(count);
      count = 0;
    }
  }
  arr.push(count);
  return arr.reduce((ac, el) => ac + calc(el), 0);
};

function calc(num) {
  return (num * (num + 1)) / 2;
}

console.log(numberOfArithmeticSlices([1, 2, 3, 4]));
Copy The Code & Try With Live Editor

Input

x
+
cmd
nums = [1,2,3,4]

Output

x
+
cmd
3
Advertisements

Demonstration


Previous
#412 Leetcode Fizz Buzz Solution in C, C++, Java, JavaScript, Python, C# Leetcode
Next
#414 Leetcode Third Maximum Number Solution in C, C++, Java, JavaScript, Python, C# Leetcode