zoukankan      html  css  js  c++  java
  • leetcode-两个数组交集(包含重复元素)

    Python解法代码:

    class Solution:
        def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
            nums1.sort()
            nums2.sort()
            r = []
            i = j = 0
            while i < len(nums1) and j < len(nums2):
                if nums1[i] == nums2[j]:
                    r.append(nums1[i])
                    i += 1
                    j += 1
                elif nums1[i] < nums2[j]:
                    i += 1
                else:
                    j += 1
            return r

    C++解法代码:

    class Solution {
    public:
        vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
            if(nums1.size()>nums2.size()) swap(nums1,nums2);//用元素少的数组元素查找
            map<int,int> a;
            for(int i=0;i<nums2.size();i++)//初始化map
            {
                if(!a.count(nums2[i]))
                    a.insert(map<int,int>::value_type(nums2[i],1));
                else a[nums2[i]]++;
            }
            vector<int> res;
            for(int i=0;i<nums1.size();i++)
            {
                if(a.count(nums1[i]))    // 检测是否存在
                {
                    if(a[nums1[i]]!=0)    // 检测存在的值是否被使用过了
                    {
                        res.push_back(nums1[i]);
                        a[nums1[i]]--;
                    }
                }
            }
            return res;
        }
    };

    例如输入值:
    [3,1,2]
    [1,1]
    预期输出结果:
    [1]
    Try to be a giver
  • 相关阅读:
    UITableview
    UIscrollview
    UITextField(详细设置)
    iOS开发UI篇—Quartz2D使用(矩阵操作)
    iOS开发UI篇—Quartz2D使用(图形上下文栈)
    类的sizeof
    Implement strStr()
    KMP很清楚的一篇解释
    Best Time to Buy and Sell Stock II
    Triangle
  • 原文地址:https://www.cnblogs.com/HannahGreen/p/12091305.html
Copyright © 2011-2022 走看看