问题
题解
- 先对arr中的每个元素求余,余数相加为k即可配对被k整除
- 需要特判的是余数为0的情况,余数为0的元素个数必须为偶数。
- (e % k + k) % k,取余公式
class Solution {
public boolean canArrange(int[] arr, int k) {
int[] cnt = new int[k];
Arrays.fill(cnt, 0);//初始化
for(int e : arr){
++cnt[(e % k + k) % k];//取余,有负数
}
if(cnt[0] % 2 != 0) return false;
for(int i = 1; i < k; i ++){
if(cnt[i] != cnt[k - i]) return false;
}
return true;
}
}