LeeCode 1497. 检查数组对是否可以被 k 整除

将每个数按照mod k的余数不同分成k类, 负数的余数为负数,特殊处理:(arr[i] % k + k) % k。

class Solution {
    public boolean canArrange(int[] arr, int k) {
        int[] cnt = new int[k];
        for(int i=0; i < arr.length; i++)
            cnt[(arr[i] % k + k) % k]++;
        if(cnt[0] % 2 != 0) return false;
        int left = 1, right = k-1;
        while(left < right) {
            if(cnt[left] != cnt[right]) return false;
            left++; right--;
        }
        return true;
    }
}
原文地址:https://www.cnblogs.com/lixyuan/p/13298185.html