class Solution {
public boolean isPossibleDivide(int[] nums, int k) {
if(nums.length % k != 0) return false;
Arrays.sort(nums);
boolean[] used = new boolean[nums.length];
Map<Integer, List<Integer>> map = new HashMap<>();
for(int i=0; i<nums.length; i++) {
List<Integer> list = map.getOrDefault(nums[i], new ArrayList<>());
list.add(i);
map.put(nums[i], list);
}
for(int i=0; i<nums.length; i++) {
if(!used[i]) {
for(int j = 0; j < k; j++) {
List<Integer> list = map.get(nums[i]+j);
if(list == null || list.size() == 0) {
return false;
}
int index = list.get(0);
used[index] = true;
list.remove(0);
}
}
}
return true;
}
}
网友评论