問題: 給定N個整數,N爲偶數,是否能找到N/2對,使得每對和能被K整除。注意:每個元素只能出現在一個配對中。
思路: 創建一個長度爲K的數組,將整數的個數按照餘數分類存儲到數組中,分析餘數情況。
boolean checkPairable(int[] nums,int k){
if(k<0)
return false;
int[] counts=new int[k];
for(int num:nums){
counts[num%k]++;
}
if(counts[0]%2!=0)
return false;
if(k%2==0){
if(counts[k/2]%2!=0)
return false;
}
for(int i=1;i<k/2;i++)
{
if(counts[i]!=counts[k-i])
return false;
}
return true;
}