Skip to main content
impol.dev

Count Partitions With Max-Min Difference at Most K

Medium

You receive an integer array nums and an integer k. Your task is to partition nums into one or more non-empty contiguous segments such that in each segment, the difference between its maximum and minimum elements is at most k.

Produce the total number of ways to partition nums under this condition.

Since the answer may be too large, produce it modulo 10^9 + 7.

Example 1

Input: nums = [9,4,1,3,7], k = 4

Output: 6

Explanation: There are 6 valid partitions where the difference between the maximum and minimum elements in each segment is at most k = 4:

  • [[9], [4], [1], [3], [7]]

  • [[9], [4], [1], [3, 7]]

  • [[9], [4], [1, 3], [7]]

  • [[9], [4, 1], [3], [7]]

  • [[9], [4, 1], [3, 7]]

  • [[9], [4, 1, 3], [7]]

Example 2

Input: nums = [3,3,4], k = 0

Output: 2

Explanation: There are 2 valid partitions that satisfy the given conditions:

  • [[3], [3], [4]]

  • [[3, 3], [4]]

Constraints

  • 2 <= nums.length <= 5 * 10^4
  • 1 <= nums[i] <= 10^9
  • 0 <= k <= 10^9

Did this problem appear in one of your interviews?

Responses stay private.

Acceptance rate: 0%

© 2026 impol.dev. All rights reserved.PrivacyTerms