分成一些k长连续整数
- https://leetcode.com/problems/hand-of-straights/
- https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/
bool isPossibleDivide(vector<int>& nums, int k) {
map<int, int> cnt; // num=>count
for (int num : nums) {
cnt[num]++;
}
for (auto &e : cnt) {
int count = e.second;
if (count > 0) { // [num..num+k)都减count
int num = e.first;
for (int i = 0; i < k; i++) {
cnt[num+i] -= count;
if (cnt[num+i] < 0) return false;
}
}
}
return true;
}