天天看點

2176. 統計數組中相等且可以被整除的數對

給你一個下标從 0 開始長度為 n 的整數數組 nums 和一個整數 k ,請你傳回滿足 0 <= i < j < n ,nums[i] == nums[j] 且 (i * j) 能被 k 整除的數對 (i, j) 的 數目 。

示例 1:

輸入:nums = [3,1,2,2,2,1,3], k = 2
輸出:4
解釋:
總共有 4 對數符合所有要求:
- nums[0] == nums[6] 且 0 * 6 == 0 ,能被 2 整除。
- nums[2] == nums[3] 且 2 * 3 == 6 ,能被 2 整除。
- nums[2] == nums[4] 且 2 * 4 == 8 ,能被 2 整除。
- nums[3] == nums[4] 且 3 * 4 == 12 ,能被 2 整除。
示例 2:

輸入:nums = [1,2,3,4], k = 1
輸出:0
解釋:由于數組中沒有重複數值,是以沒有數對 (i,j)      
class Solution {
public:
    int countPairs(vector<int>& nums, int k) {
        int count = 0;
        int len = nums.size();

        for(int i = 0;i<len;i++){
            for(int j= i+1;j<len;j++){
                if(nums[i]==nums[j]&&i*j%k==0){
                    count++;
                }
            }
        }
        return count;
    }
};      

繼續閱讀