【从零开始的LeetCode-算法】3164.优质数对的总数 II

给你两个整数数组 nums1nums2,长度分别为 nm。同时给你一个正整数 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 <= n, m <= 105

  • 1 <= nums1[i], nums2[j] <= 106

  • 1 <= k <= 103

java 复制代码
class Solution {
    public long numberOfPairs(int[] nums1, int[] nums2, int k) {
        HashMap<Integer,Integer> map1 = new HashMap<Integer,Integer>();
        HashMap<Integer,Integer> map2 = new HashMap<Integer,Integer>();
        // 找出最大的除数
        int max_num = 0;
        // 使用map记录数组中所有数字及其出现的次数
        for(int num1: nums1){
            map1.put(num1,map1.getOrDefault(num1,0) + 1);
            if(num1 > max_num){
                max_num = num1;
            }
        }
        for(int num2: nums2){
            map2.put(num2,map2.getOrDefault(num2,0) + 1);
        }
        long count = 0;
        // 遍历所有被除数
        for(int num: map2.keySet()){
            int i = num * k;
            // 找出除数中,能与被除数组成优质数对的除数;即【被除数*k】的倍数
            for(int b = i; b <= max_num; b += i){
                // 优质数对的除数与被除数可以任意组合,可组成m*n个组合
                if( map1.containsKey(b)) count += 1L * map1.get(b) * map2.get(num);
            }
        }
        return count;
    }
}
相关推荐
SeaDhdhdhdhdh4 小时前
MCP Server 搭建与使用指南
java·ai·agent·mcp
YH55269845 小时前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
AI_小站5 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
许彰午6 小时前
03-三种开发模式
java·架构
涟漪海洋6 小时前
创建最新的JDK25镜像,非root环境启动
java
遥感知识服务6 小时前
从局部阈值、双极化到暗地表剔除:NASA OPERA DSWx-S1全球动态水体算法拆解
大数据·人工智能·深度学习·神经网络·算法·机器学习
晚风醉蝶6 小时前
1-13-TimSort
算法
Rain的Java大神之路6 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
ZJU_统一阿萨姆7 小时前
【算子开发】算子融合与Softmax_LayerNorm实现
人工智能·算法·语言模型·硬件架构
2602_959960927 小时前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题