Arithmetic Subarrays - Problem
Arithmetic Subarrays is a fascinating problem that tests your ability to determine if subarrays can form arithmetic progressions after rearrangement.

An arithmetic sequence is a sequence where consecutive elements have the same difference. For example:
[1, 3, 5, 7, 9] - difference is 2
[7, 7, 7, 7] - difference is 0
[3, -1, -5, -9] - difference is -4

Given an array nums and multiple range queries defined by arrays l and r, you need to determine for each query whether the subarray from index l[i] to r[i] can be rearranged to form an arithmetic sequence.

Key insight: The elements don't need to be in order initially - you can rearrange them however you want!

Input & Output

example_1.py — Basic Case
$ Input: nums = [4,6,5,9,3,7], l = [0,0,2], r = [1,2,5]
Output: [true, false, true]
💡 Note: Query 1: [4,6] can form [4,6] with diff=2. Query 2: [4,6,5] sorted is [4,5,6] with diffs [1,1], so true. Wait, let me recalculate: [4,6,5] cannot form arithmetic (diffs would be 1,1 but we need same diff). Query 3: [5,9,3,7] can be rearranged to [3,5,7,9] with diff=2.
example_2.py — All Same Elements
$ Input: nums = [5,5,5,5], l = [0,1], r = [2,3]
Output: [true, true]
💡 Note: Both queries result in subarrays of identical elements, which form arithmetic sequences with difference 0.
example_3.py — Single Elements
$ Input: nums = [1,2,3], l = [0], r = [0]
Output: [true]
💡 Note: A single element trivially forms an arithmetic sequence (though we need at least 2 elements by definition, single elements are considered valid).

Constraints

  • n == nums.length
  • m == l.length == r.length
  • 2 ≤ n ≤ 500
  • 1 ≤ m ≤ 500
  • 0 ≤ l[i] < r[i] < n
  • -105 ≤ nums[i] ≤ 105

Visualization

Tap to expand
Arithmetic Subarray Validation ProcessStep 1: Extract SubarrayQuery: nums[1:4] = [6, 5, 9]659Step 2: Sort ElementsSorted: [5, 6, 9]569+1+3Step 3: Check DifferencesDifferences: [1, 3] - Not Equal!13Good Example: [3, 5, 7]357+2+2Differences: [2, 2] - Equal! ✓22=🎯 Key Insight: Arithmetic sequences have equal consecutive differences when sorted!
Understanding the Visualization
1
Extract Musicians
Select musicians for this piece (subarray elements)
2
Arrange by Pitch
Sort musicians by their note values (ascending order)
3
Check Intervals
Verify each consecutive pair has the same musical interval
4
Validate Harmony
If all intervals match, the arrangement creates perfect arithmetic harmony
Key Takeaway
🎯 Key Insight: An arithmetic sequence has exactly one valid arrangement - sorted order with equal consecutive differences!
Asked in
Google 15 Amazon 12 Meta 8 Microsoft 6
28.5K Views
Medium Frequency
~15 min Avg. Time
892 Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen