当前位置: 首页 > news >正文

统计匹配的二元组个数 - 华为OD机试真题(A卷、JavaScript题解)

华为OD机试题库《C++》限时优惠 9.9

华为OD机试题库《Python》限时优惠 9.9

华为OD机试题库《JavaScript》限时优惠 9.9

针对刷题难,效率慢,我们提供一对一算法辅导, 针对个人情况定制化的提高计划(全称1V1效率更高)。

看不懂有疑问需要答疑辅导欢迎私VX: code5bug

华为OD机试真题

题目描述

给定两个数组A和B,若数组A的某个元素A[i]与数组B中某个元素B[j] 满足 A[i]==B[j],则寻找到一个值匹配的二元组 (i,j)。请统计在这两个数组A和B中,一共存在多少个这样的二元组。

输入描述

  • 第一行输入数组A的长度M
  • 第二行输入数组B的长度N
  • 第三行输入数组A的值(空格分隔)
  • 第四行输入数组B的值(空格分隔)

备注

  • 若不存在相等的值,则输出0。
  • 所采用的算法复杂度需小于 O(N2),否则会超时。
  • 输入数组中允许出现重复数字,一个数字可以匹配多次。

输出描述

输出匹配的二元组个数。

示例1

输入:
5
4
1 2 3 4 5
4 3 2 1输出:
4

示例2

输入:
6
3
1 2 4 4 2 1
1 2 3输出:
4

示例3

输入:
4
1
1 2 3 4
1输出:
1

示例4

输入:
6
3
1 1 2 2 4 5
2 2 4输出:
5

题解

  1. 统计频次:首先统计数组B中每个数字出现的次数。
  2. 遍历匹配:遍历数组A,对于每个元素,检查中是否存在该数字。如果存在,则将该数字的频率累加到结果中。
  3. 复杂度分析:统计频次的时间复杂度为O(N),遍历匹配的时间复杂度为O(M),总时间复杂度为O(M + N),满足题目要求的小于O(N^2)的复杂度。

JavaScript

const rl = require('readline').createInterface({input: process.stdin,output: process.stdout,
});
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;// Author: code5bug
(async () => {const M = parseInt(await readline());const N = parseInt(await readline());const A = (await readline()).split(' ').map(Number);const B = (await readline()).split(' ').map(Number);// 统计数组B中每个数字出现的频率const freq = {};for (const num of B) {freq[num] = (freq[num] || 0) + 1;}let count = 0;// 遍历数组A,统计匹配的二元组个数for (const num of A) {if (freq[num] !== undefined) {count += freq[num];}}console.log(count);rl.close();
})();

整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

相关文章:

  • 破解逆向专辑(一)
  • Qt界面设计时窗口中各控件布局及自适应方法
  • 如何用FastMCP快速开发自己的MCP Server?
  • 云硬盘的原理
  • 分布式-Redis分布式锁
  • 从零开始学习three.js(15):一文详解three.js中的纹理映射UV
  • SimpleMindMap:一个支持AI的思维导图软件
  • UGUI如何使用EventTrigger
  • AI Workflow
  • 数据中心机电建设
  • 夸克网盘链接失效检测工具
  • 混淆矩阵(Confusion Matrix)
  • PWN基础-ROP技术-ret2syscall突破NX保护
  • Mongo3.4升级到mongo6性能降低9倍
  • spring cloud alibaba nacos 服务注册
  • 回溯进阶(一):以全排列问题为例,来展示如何对回溯的纵向和横向进行操作
  • 成功解决 AttributeError: module ‘pathlib‘ has no attribute ‘_Accessor‘
  • gbase8s数据库 tcp连接不同阶段的超时处理
  • BFC理解
  • 60页PDF | 四川电信数据湖 + 数据中台实施方案:覆盖数据能力、数据资产及数据治理的全流程建设指南
  • 马上评丨全民定制公交,打开城市出行想象空间
  • 【社论】职业上新,勇于“尝新”
  • A股三大股指低收:银行股再度走强,两市成交11920亿元
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生
  • “救护车”转运病人半路加价,从宝鸡到西安往返都要多收钱
  • 经济日报:落实落细更加积极的财政政策