Talentd
FleetCode

1296. Divide Array in Sets of K Consecutive Numbers

Medium59.2% acceptance2 companies

Given an array of integers nums and a positive integer k, check whether it is possible to divide this array into sets of k consecutive numbers.

Return true if it is possible. Otherwise, return false.

Example 1:

Input: nums = [1,2,3,3,4,4,5,6], k = 4
Output: true
Explanation: Array can be divided into [1,2,3,4] and [3,4,5,6].

Example 2:

Input: nums = [3,2,1,2,3,4,3,4,5,9,10,11], k = 3
Output: true
Explanation: Array can be divided into [1,2,3] , [2,3,4] , [3,4,5] and [9,10,11].

Example 3:

Input: nums = [1,2,3,4], k = 3
Output: false
Explanation: Each array should be divided in subarrays of size 3.

Constraints:

  • 1 <= k <= nums.length <= 105
  • 1 <= nums[i] <= 109
Note: This question is the same as 846: https://leetcode.com/problems/hand-of-straights/

Asked at 2 companies

Hints open one at a time

Hint 1
If the smallest number in the possible-to-split array is V, then numbers V+1, V+2, ... V+k-1 must contain there as well.
Hint 2
You can iteratively find k sets and remove them from array until it becomes empty.
Hint 3
Failure to do so would mean that array is unsplittable.
20:41
Still stuck?Read 4 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def isPossibleDivide(self, nums: List[int], k: int) -> bool:
3
Starter codePython 3Spaces: 4
Examples
Input
[1,2,3,3,4,4,5,6]
4
Input
[3,2,1,2,3,4,3,4,5,9,10,11]
3
Input
[1,2,3,4]
3
Your code is saved on this device.Solution