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;
}