欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 力扣10.11

力扣10.11

2025/2/24 22:11:23 来源:https://blog.csdn.net/qq_40052678/article/details/142852289  浏览:    关键词:力扣10.11

3164. 优质数对的总数 II

给你两个整数数组 nums1nums2,长度分别为 nm。同时给你一个正整数 k

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

返回 优质数对 的总数。

数据范围

  • 1 <= n, m <= 105
  • 1 <= nums1[i], nums2[j] <= 106
  • 1 <= k <= 103

分析

枚举倍数,记录nums1和nums2每个数字出现的个数记录在cnt1和cnt2中,对于nums2的每个数kk,枚举它的倍数,与k相乘后去cnt1中找,最后答案加上对应的值

代码

typedef long long LL;
class Solution {
public:const static int N = 1e6 + 6;int cnt[N];map<LL, LL> cnt2;long long numberOfPairs(vector<int>& nums1, vector<int>& nums2, int k) {LL maxx = 0;for(int i = 0; i < nums1.size(); i ++ ) {cnt[nums1[i]] ++ ;maxx = max(maxx, (LL)nums1[i]);}for(auto kk : nums2) {cnt2[kk] ++;}LL res = 0;for(auto [kk, v] : cnt2) {LL t = kk * k;for(LL j = t; j <= maxx; j += t ) { // 枚举倍数res += v * cnt[j]; // 加法原理}}return res;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词