# 1296. Divide Array in Sets of K Consecutive Numbers
###### tags: `Leetcode` `Medium` `TreeMap`
Link: https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/
## 思路 $O(MlogM + MK)$
where $M$ is the number of different nums.
1. Count number of different number to a map $c$
2. Loop from the smallest number.
3. Everytime we meet a new num $i$, we cut off $i$ to $i+k-1$ from the counter.
for回圈要从后往前遍历 不然一上来就把map.get(it)改了
## Code
```java=
class Solution {
public boolean isPossibleDivide(int[] nums, int k) {
if(nums.length%k!=0) return false;
Map<Integer, Integer> map = new TreeMap<>();
for(int num:nums) map.put(num, map.getOrDefault(num,0)+1);
for(int it:map.keySet()){
if(map.get(it)>0){
for(int i=k-1; i>=0; i--){
if(map.getOrDefault(it+i,0)<map.get(it)) return false;
map.put(it+i, map.get(it+i)-map.get(it));
}
}
}
return true;
}
}
```