您当前的位置: 首页 >  liyatjj leetcode

LeetCode两个数组的交集

liyatjj 发布时间:2022-04-30 09:24:11 ,浏览量:4

两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/intersection-of-two-arrays

一开始想的是找两个数组中不同的元素,当两个数组中某一个在另一个数组中不存在时,就remove,但remove方法只在list集合中。 还有一种思路,两个for循环遍历,两个数组只要有相同的元素就拷贝到新数组中。 官方题解中还有一种采用排序加双指针的方法,就是先对数组元素进行排序,只需要Arrays.sort就好,然后i和j分别是两个数组的索引: (1)当nums1【i】和nums2【j】相等时,写入新数组(这里要注意新数组还没有元素的时候),还有,nums1和nums2中很有可能有重复元素,即便相同位置元素相同,很有可能元素已经在num中,需要判断当前元素和num【index-1】是否相等,不相等就可以写入。 (2)当nums1【i】>nums2【j】时,由于是已经排好序的,所以让j++就好。 (3)同理nums1【i】

关注
打赏
1688896170
查看更多评论

liyatjj

暂无认证

  • 4浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0480s