350. Intersection of Two Arrays II 难度:easy

来源:互联网 发布:xp能装MySQL 编辑:程序博客网 时间:2024/06/11 03:18

题目:

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

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

Note:

  • Each element in the result should appear as many times as it shows in both arrays.
  • The result can be in any order.

思路:

对数组nums1进行排序;对数组nums2进行排序;遍历数组nums1和nums2中元素,并比较对应的元素,若相等,则将其保存到输出结果中,并变化两个数组对应的索引,不等,则变化较小元素对应的索引即可。


程序:

class Solution {public:    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {        sort(nums1.begin(), nums1.end());    sort(nums2.begin(), nums2.end());    vector<int> result;    for (int i = 0, j = 0; i < nums1.size() && j < nums2.size(); )     {        if (nums1[i] == nums2[j])        {            result.push_back(nums1[i]);            i++;            j++;        }        else if (nums1[i] < nums2[j])            i++;        else if (nums1[i] > nums2[j])            j++;    }    return result;    }};



0 0
原创粉丝点击