Problem · Array

Count Analogous Arrays

Learn this problem
MediumAtlassian logoAtlassianFULLTIMEOA

Problem statement

A secret integer array is represented by the differences between consecutive values. For an analogous array a, every value must lie in the inclusive interval [lowerBound, upperBound], and for every valid i, a[i] - a[i + 1] = consecutiveDifference[i].

Return the number of analogous arrays. Return 0 when no starting value can keep the entire array inside the interval.

Function

countAnalogousArrays(consecutiveDifference: int[], lowerBound: int, upperBound: int) → int

Examples

Example 1

consecutiveDifference = [-2,-1,-2,5]lowerBound = 3upperBound = 10return = 3

The valid arrays are [3,5,6,8,3], [4,6,7,9,4], and [5,7,8,10,5].

Constraints

  • 0 <= consecutiveDifference.length <= 100000
  • -10^9 <= consecutiveDifference[i] <= 10^9
  • -10^9 <= lowerBound <= upperBound <= 10^9
  • The answer fits a signed int.

More Atlassian problems

drafts saved locally
public int countAnalogousArrays(int[] consecutiveDifference, int lowerBound, int upperBound) {
  // Write your code here.
}
consecutiveDifference[-2,-1,-2,5]
lowerBound3
upperBound10
expected3
checking account