zoukankan      html  css  js  c++  java
  • 349. Intersection of Two Arrays

    Problem:

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

    Example 1:

    Input: nums1 = [1,2,2,1], nums2 = [2,2]
    Output: [2]
    

    Example 2:

    Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
    Output: [9,4]
    

    Note:

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

    思路

    Solution (C++):

    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        set<int> s;
        vector<int> res{};
        int m = nums1.size(), n = nums2.size();
        if (m == 0 || n == 0)  return res;
        sort(nums1.begin(), nums1.end());
        sort(nums2.begin(), nums2.end());
        if (m <= n) {
            for (int i = 0; i < m; ++i)
                if (binarySearch(nums2, nums1[i])) s.insert(nums1[i]);
        }
        else {
            for (int i = 0; i < n; ++i) {
                if (binarySearch(nums1, nums2[i]))  s.insert(nums2[i]);
            }
        }
        for (auto x : s) res.push_back(x);
        return res;
    }
    bool binarySearch(vector<int>&  v, int num) {
        int l = 0, r = v.size()-1, mid;
        while (l <= r) {
            mid = l + (r-l) / 2;
            if (num == v[mid])  return true;
            else if (num < v[mid])  r = mid - 1;
            else l = mid + 1;
        }
        return false;
    }
    

    性能

    Runtime: 8 ms  Memory Usage: 6.9 MB

    思路

    Solution (C++):

    
    

    性能

    Runtime: ms  Memory Usage: MB

    相关链接如下:

    知乎:littledy

    欢迎关注个人微信公众号:小邓杂谈,扫描下方二维码即可

    作者:littledy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    获取系统信息
    Spring下获取项目根路径--good
    Java 获取webapp,Root,classpath,项目等路径工具类
    并发与并行的区别
    享元模式的简单使用
    mysql 分库分表(水平切割和垂直切割)
    sql随机筛选几条记录
    创建表
    sql字段组合唯一
    Jobject 使用
  • 原文地址:https://www.cnblogs.com/dysjtu1995/p/12609310.html
Copyright © 2011-2022 走看看