給你一個整數數組 arr 和一個整數 k ,其中數組長度是偶數,值為 n 。
現在需要把數組恰好分成 n / 2 對,以使每對數字的和都能夠被 k 整除。
如果存在這樣的分法,請返回 True ;否則,返回 False 。
示例 1:
輸入:arr = [1,2,3,4,5,10,6,7,8,9], k = 5
輸出:true
解釋:劃分后的數字對為 (1,9),(2,8),(3,7),(4,6) 以及 (5,10) 。
代碼
class Solution {public boolean canArrange(int[] arr, int k) {int n=arr.length;int[] temp=new int[k];for(int c:arr)temp[(c%k+k)%k]++;//計算余數for(int i=1;i<=k/2;i++)if(temp[i]!=temp[k-i]) return false;//對應的余數不相等return temp[0]%2==0;//整除k的需要偶數才能配對}
}