您的位置:首页 > 编程语言 > C语言/C++

lintcode 两数组的交II

2017-06-08 20:30 309 查看
1.描述;

计算两个数组的交


 注意事项


每个元素出现次数得和在数组里一样

答案可以以任意顺序给出

您在真实的面试中是否遇到过这个题? 

Yes

样例

nums1 = 
[1, 2, 2, 1]
,
nums2 = 
[2, 2]
, 返回 
[2,
2]
.

2.思路:

先把两个vector从大到小排序,然后从头开始依次进行比较即可

3.代码:

vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {

        vector<int>r;

        sort(nums1.begin(),nums1.end());

        sort(nums2.begin(),nums2.end());

        int i=0;

        int j=0;

        while(i<nums1.size()&&j<nums2.size())

        {

            if(nums1[i]==nums2[j])

            {

                r.push_back(nums1[i]);

                i++;

                j++;

            }

            if(nums1[i]<nums2[j])  i++;

            if(nums1[i]>nums2[j])  j++;

        }

        return r;

    }

4.感想:这题跟另一个数组交的题差不多,相对简单
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ lintcode