题解 | #两个数组的交集#

两个数组的交集

http://www.nowcoder.com/practice/56ea71d1f4e94de2aaec10e985874cce

解题思路

  • 首先将其中一个数组进行排序
  • 然后将排序后的元素逐个插入到临时vector数组中,插入的时候还要查看与相邻元素的值是否相等,相等的话就不插入了。
  • 这样得到的临时vector数组就是排序好的无重复数字的数组,然后逐个与另一个数组进行比较,如果是相等的,那么将这个数取出来。

具体代码如下:

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> res,nums3;  //res为保存结果的数组,nums3为临时排序数组
        sort(nums1.begin(),nums1.end());
        for(int i=0;i<nums1.size();i++){
            nums3.push_back(nums1[i]);
            if(nums1[i]==nums1[i+1]){
                nums3.pop_back();
            }
        }
        for(int i=0;i<nums3.size();i++){
            for(int j=0;j<nums2.size();j++){
                if(nums3[i]==nums2[j]){
                    res.push_back(nums3[i]);
                    break;
                }
            }
        }
        return res;
    }
};
全部评论

相关推荐

06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务