349. Intersection of Two Arrays

转载 2016年05月30日 11:51:01

题目:

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.
题意:

给定两个数组,写一个功能计算两者的交叉部分。

note:

1、结果集中的每一个元素必须唯一;

2、结果集可以是任何顺序


思路一:

将两个数组排序,之后逐个数进行对比,排除相同的元素。

代码:11ms

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        
        sort(nums1.begin(), nums1.end());
        sort(nums2.begin(), nums2.end());
        int c1 = 0;
        int c2 = 0;
        vector<int> result;
        
        while(c1<nums1.size() && c2<nums2.size()){
            if(nums1[c1]==nums2[c2]){
                if(!result.size() || result.back()!=nums1[c1]){
                    result.push_back(nums1[c1]);
                }
                c1++;
                c2++;
            }else if(nums1[c1]>nums2[c2]){
                c2++;
            }else{
                c1++;
            }
        }
        
        return result;
    }
};
思路二:

借助set集合的元素不相同型完成相同元素的排除,之后直接比较两个数组之中的元素即可。

代码:8ms

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        
        unordered_set<int> interSet(nums1.begin(), nums1.end());
        vector<int> result;
        
        for(auto num : nums2){
            if(interSet.count(num)){
                result.push_back(num);
                interSet.erase(num);
            }
        }
        
        return result;
    }
};

Intersection of Two Arrays II两个数组交集(重要!)

https://leetcode.com/problems/intersection-of-two-arrays-ii/ Given two arrays, write a function ...
  • gao1440156051
  • gao1440156051
  • 2016年06月26日 23:21
  • 1462

两个有序数组的中位数Median of Two Sorted Arrays(很重要)

https://leetcode.com/problems/median-of-two-sorted-arrays/ 对于一个长度为n的已排序数列a,若n为奇数,中位数为a[n / 2 + 1]...
  • gao1440156051
  • gao1440156051
  • 2016年06月21日 11:11
  • 3254

349. Intersection of Two Arrays --双指针、字典、二分查找、集合

349. Intersection of Two Arrays很经典的题目,可以使用双指针、字典、二分查找、集合来实现Given two arrays, write a function to com...
  • u012925804
  • u012925804
  • 2017年05月15日 00:31
  • 110

【LeetCode-面试算法经典-Java实现】【160-Intersection of Two Linked Lists(单链表的交集)】

【160-Intersection of Two Linked Lists(单链表的交集)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Write a program ...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月22日 06:45
  • 3187

Intersection of Two Arrays(两数组的交叉元素)

Given two arrays, write a function to compute their intersection.(给定两个数组,计算它们的交叉元素)Example: Given n...
  • ajiangfan
  • ajiangfan
  • 2016年09月26日 11:40
  • 234

寻找两个数组的中位数 Median of Two Sorted Arrays ***问题转化思想***

题目源自于Leetcode。经典好题。 题目: There are two sorted arrays A and B of size m and n respectively. Find the ...
  • u012239334
  • u012239334
  • 2013年11月20日 14:46
  • 717

LintCode数组题总结

做算法题的时候,几乎不可避免要跟数组打交道。在LintCode上数组那一章有这么一些题目: 1)547. Intersection of Two Arrays 比较简单。要求找到2个数组的...
  • luoshengkim
  • luoshengkim
  • 2016年06月02日 23:16
  • 1800

Arrays使用详解

Arrays的常用方法 代码: package myArrays; import java.util.*; public class Arrays1 { public static vo...
  • u014082714
  • u014082714
  • 2015年11月19日 10:50
  • 703

Java集合---Arrays类源码解析

代码搬运工,搬运地址:http://www.cnblogs.com/ITtangtang/p/3948765.html 一、Arrays.sort()数组排序 Java Arrays中提供了对所有...
  • wen1158646729
  • wen1158646729
  • 2015年07月06日 10:07
  • 955

java中Arrays类的用法

java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能: ² 给数组赋值:通过fill方法。 ² 对数组排序:通过sort方法,按升序。 ² 比较数组:通过...
  • object_allen
  • object_allen
  • 2014年12月03日 12:15
  • 8484
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:349. Intersection of Two Arrays
举报原因:
原因补充:

(最多只允许输入30个字)