华为机试 - 二元组个数
admin
2024-03-26 17:16:22
0

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

给定两个数组a,b,若a[i] == b[j] 则称 [i, j] 为一个二元组,求在给定的两个数组中,二元组的个数。

输入描述

第一行输入 m
第二行输入m个数,表示第一个数组

第三行输入 n
第四行输入n个数,表示第二个数组

输出描述

二元组个数。

用例

输入4
1 2 3 4
1
1
输出1
说明二元组个数为 1个
输入6
1 1 2 2 4 5
3
2 2 4
输出5
说明二元组个数为 5 个。

题目解析

很简单的双重for,

/**** @param {Array} arrM 第二行输入的数组* @param {Number} m 第一行输入的数字m* @param {Array} arrN 第四行输入的数组* @param {Number} n 第二行输入的数字n* @returns*/
function getResult(arrM, m, arrN, n) {let count = 0;for (let i = 0; i < m; i++) {for (let j = 0; j < n; j++) {if (arrM[i] === arrN[j]) {count++;}}}return count;
}

但是不知道数量级多少,如果数量级比较大的话,则O(n*m)可能罩不住。

因此,我们还需要考虑下大数量级的情况。

我的思路如下:

先找找出m数组中,在n数组中出现的数及个数,在找出n数组中,在m数组中出现的数及个数,比如:

用例2中

countM = {2:2, 4:1}

countN = {2:2, 4:1}

然后将相同数的个数相乘,最后求和即为题解,比如2*2 + 1*1 = 5

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});const lines = [];
rl.on("line", (line) => {lines.push(line);if (lines.length === 4) {const m = lines[0] - 0;const arrM = lines[1].split(" ").map(Number);const n = lines[2] - 0;const arrN = lines[3].split(" ").map(Number);console.log(getResult(arrM, m, arrN, n));lines.length = 0;}
});function getResult(arrM, m, arrN, n) {const setM = new Set(arrM);const setN = new Set(arrN);const countM = {};for (let m of arrM) {if (setN.has(m)) countM[m] ? countM[m]++ : (countM[m] = 1);}const countN = {};for (let n of arrN) {if (setM.has(n)) countN[n] ? countN[n]++ : (countN[n] = 1);}let count = 0;for (let k in countM) {count += countM[k] * countN[k];}return count;
}

相关内容

热门资讯

黄金ETF持仓量报告解读(20... 截至7月23日,全球最大的黄金ETF SPDR Gold Trust持仓量为1009.298吨,较前...
珠宝店银回收有哪些行业通用标准 首饰加工行业金属废料处置背景 首饰加工行业是贵金属废料产生的核心场景之一,珠宝店在日常经营、首饰加...
德明利:控股股东、董事长李虎自... 德明利公告称,公司控股股东、董事长李虎自愿承诺自2026年7月27日起12个月内,不以任何方式减持其...
十倍存储牛股德明利:董事长承诺... 7月24日盘后,德明利(001309.SZ)公告称,公司控股股东、董事长李虎自愿承诺自2026年7月...
外资公募二季度持仓披露 聚焦光... 观点网讯:近日,随着公募基金二季报披露收官,贝莱德、富达、路博迈、安联、联博等外商独资公募基金的二季...
政企合作、地方产业扶持为什么更... 各地政府与产业园区在大健康产业招商中,普遍优先扶持实体生产型企业,对轻资产招商、流量型项目基本不予扶...
原创 特... 近日美加贸易再起波澜,美国总统特朗普宣布对价值约 200 亿美元的加拿大进口商品加征 50% 关税,...
日本消费者大举购入珠宝,对冲日... 7月24日,财闻海外资讯消息,通胀高企、日元持续走弱,日本民众纷纷抢购奢侈珠宝,将其当作保值避险资产...
Anthropic杀入AI制药... 来源:智药局 从挖人才到建社群,Anthropic对AI制药领域的野心,实在太明显了。 近日,Ant...
小红书:启动人力系统复盘,邀请... 小红书上市的传闻,传了也有一个多月了吧。 市场迟迟蹲不到官方的回应,导致坊间一度是众说纷纭…结果没想...
“蛋白粉里没蛋白”:达开生物蛋... 图片来源:视觉中国 蓝鲸新闻7月24日讯(记者 代紫庭)当不少乳清蛋白粉一路涨到一罐数百元时,500...
Anthropic被曝9月上市... 智东西 编译 | 茄子 编辑 | 程茜 智东西7月24日消息,昨日,The Information援...
追加3亿美元投资扩大美国生产布... 7月24日, 百济神州(06160.HK)涨超4%,截至发稿,涨4.02%,报202.6港元,成交额...
段永平换仓了。。盯上这些科技股 全球科技股巨震之际,段永平开始换仓了。 段永平近日在社交平台回复网友时,透露了自己最新操作。 网友问...
原创 为... 为了不让中国“占便宜”,欧盟“放过了”俄罗斯。 日前,欧盟第21轮对俄制裁遭到希腊否决。无奈之下,欧...
圣邦股份跌3.32%,成交额1... 来源:新浪证券-红岸工作室 7月24日,圣邦股份跌3.32%,成交额11.29亿元,换手率1.86%...
新华鲜报丨企业年金个人账户明年... 无论你在哪里干、社会保险接着算,这句话在企业年金上有了新体现。 7月24日,《企业年金个人账户转移接...
原创 曹... 饭桌上最容易吵翻天的话题,除了催婚,大概就是买房。一个说手里有房心里不慌,一个说背上房贷就是给银行打...
盒马超盒算NB首进西南 成都6... 观点网讯:7月24日,盒马旗下平价社区超市品牌超盒算NB正式进入西南市场,首批6家门店在成都同步开业...