【leetcode75】Intersection of Two Arrays(数组的交集)

news/2024/7/3 0:34:52

题目描述:

给定两个数组求他们的公共部分,输出形式是数组,相同的元素只是输出一次

例如:

nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

原文描述:

Given two arrays, write a function to compute their intersection.

Example:

Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].

Note:

Each element in the result must be unique.
The result can be in any order.

思路一:

1.使用HashMap(Integer,Boolean)数据结构,首先是便利Array1,放入map1
2.遍历Array2,判断map1是否包含,存入map2
3.取出map2的数据,存入数组输出

代码:

public class Solution {/*** @param nums1 an integer array* @param nums2 an integer array* @return an integer array*/public int[] intersection(int[] nums1, int[] nums2) {HashMap<Integer, Boolean> map1 = new HashMap<Integer, Boolean>();HashMap<Integer, Boolean> intersectMap = new HashMap<Integer, Boolean>();for (int i = 0; i < nums1.length; i++) {if (!map1.containsKey(nums1[i])) {map1.put(nums1[i], true);}}for (int j = 0; j < nums2.length; j++) {if (map1.containsKey(nums2[j]) && !intersectMap.containsKey(nums2[j])) {intersectMap.put(nums2[j], true);}}int[] result = new int[intersectMap.size()];int i = 0;for (Integer e : intersectMap.keySet()) {result[i] = e;i++;}return result;}
}

思路二:

  • 先把两个数组排序
  • 索引i,j分别代表Array1和Array2,相等都加1,谁小谁对应的索引加1 -

代码:

public class Solution {/*** @param nums1 an integer array* @param nums2 an integer array* @return an integer array*/public int[] intersection(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int i = 0, j = 0;int[] temp = new int[nums1.length];int index = 0;while (i < nums1.length && j < nums2.length) {if (nums1[i] == nums2[j]) {if (index == 0 || temp[index - 1] != nums1[i]) {temp[index++] = nums1[i];}i++;j++;} else if (nums1[i] < nums2[j]) {i++;} else {j++;}}int[] result = new int[index];for (int k = 0; k < index; k++) {result[k] = temp[k];}return result;}
}

更多leetcode题目,请看我的leetcode专栏。链接如下:

leetcode专栏

我的微信二维码如下,欢迎交流讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

这里写图片描述

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

转载于:https://www.cnblogs.com/fengsehng/p/6048675.html


http://lihuaxi.xjx100.cn/news/267141.html

相关文章

kvm-桥接模式(二)

1.宿主机-添加br0桥接 宿主机信息:IP是: 192.168.2.13网卡是: ens33 操作:(1).添加一个br0的桥接vi /etc/sysconfig/network-scripts/ifcfg-br0DEVICEbr0 TYPEBridgeBOOTRPOTOstaticIPADDR192.168.2.13NETMASK255.255.255.0GATEWAY192.168.2.1DNS1192.168.2.1ONBOOTyes重启网路…

线性回归之模型的保存和加载

线性回归之模型的保存和加载 1 sklearn模型的保存和加载API from sklearn.externals import joblib 【目前这行代码报错&#xff0c;直接写import joblib就可以了】 保存&#xff1a;joblib.dump(estimator, test.pkl)加载&#xff1a;estimator joblib.load(test.pkl)【注…

xp命令大全

winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 winchat--------XP自带局域网聊天 mem…

想了解3D结构光,看这份拆解就对了

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达上节我们提到无论是结构光、TOF还是双目立体成像方案&#xff0c;主要的硬件包括红外光发射器、红外光摄像头、可见光摄像头和图像处理芯片四部分&#xff0c;红外摄像头需…

python kafka 生产

from pykafka import KafkaClientclass KafkaProduct():def __init__(self,hosts,topic):"""初始化实例:param hosts: 连接地址:param topic:"""self.__client KafkaClient(hostshosts)self.__topic self.__client.topics[topic.encode()]def …

揭秘华为AI一站式开发平台,3步构建一个AI模型 | 华为昇腾师资培训沙龙西安场...

2018 年&#xff0c;在第三届 HUAWEI CONNECT&#xff08;华为全联接大会&#xff09;上&#xff0c;华为首次公布了 AI 战略与全栈全场景 AI 解决方案&#xff0c;其中包含全球首个覆盖全场景人工智能的华为昇腾&#xff08;Ascend&#xff09;系列处理器以及基于华为昇腾全栈…

灵隐寺招聘:没有KPI,佛系上班……

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达

python urllib2 开启调试

2019独角兽企业重金招聘Python工程师标准>>> 发一段在网上看见. USING HTTPLIB.HTTPCONNECTION.SET_DEBUGLEVEL() WITH URLLIB2 Posted on October 1, 2007, 9:52 pm, by jamiegrove, under python. I’ve been trying to get the debug level turned on in urll…