3162. 优质数对的总数 I

给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。

如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j) 为 优质数对(0 <= i <= n - 1, 0 <= j <= m - 1)。

返回 优质数对 的总数。

示例 1:

输入:nums1 = [1,3,4], nums2 = [1,3,4], k = 1

输出:5

解释:

5个优质数对分别是 (0, 0), (1, 0), (1, 1), (2, 0), 和 (2, 2)。

示例 2:

输入:nums1 = [1,2,4,12], nums2 = [2,4], k = 3

输出:2

解释:

2个优质数对分别是 (3, 0) 和 (3, 1)。

解题思路:
1.计算两个数组中,第一个数组的元素能够被第二个数组的元素乘以k整除的配对数量

完整代码:
    /**
     * 计算两个数组中,第一个数组的元素能够被第二个数组的元素乘以k整除的配对数量
     * 
     * @param nums1 第一个数组,包含一组整数
     * @param nums2 第二个数组,包含一组整数
     * @param k 乘数,用于调整整除条件
     * @return 返回满足整除条件的配对数量
     */
    public int numberOfPairs(int[] nums1, int[] nums2, int k) {
        // n和m分别代表两个数组的长度
        int n = nums1.length;
        int m = nums2.length;
        // ans用于记录满足条件的配对数量
        int ans = 0;
        
        // 遍历第一个数组的每个元素
        for (int i = 0; i < n; i++) {
            // 遍历第二个数组的每个元素
            for (int j = 0; j < m; j++) {
                // 检查第一个数组的元素是否能被第二个数组的元素乘以k整除
                if (nums1[i] % (nums2[j] * k)  == 0) {
                    // 如果能,增加配对数量
                    ans++;
                }
            }
        }
        // 返回满足条件的配对数量
        return ans;
    }
posted @ 2024-10-10 09:16  JAVA-CHENG  阅读(21)  评论(0编辑  收藏  举报