350. Intersection of Two Arrays II

来源:互联网 发布:js九九乘法表代码 编辑:程序博客网 时间:2024/06/13 05:40

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

Example:

Given nums1 = [1, 2, 2, 1]nums2 = [2, 2], return [2, 2].

先排序,然后双指针同时遍历两个数组。

class Solution {public:    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {        if (nums1.size()>nums2.size()) {            return intersect(nums2, nums1);        }        vector<int> result;        sort(nums1.begin(), nums1.end());        sort(nums2.begin(), nums2.end());        auto it1 = nums1.begin(), it2 = nums2.begin();        while (it1 != nums1.end() && it2 != nums2.end()) {            if (*it1 < *it2) {                ++it1;            } else if (*it1 > *it2) {                ++it2;            } else {                result.push_back(*it1);                ++it1, ++it2;            }        }        return result;    }};


0 0
原创粉丝点击