两数组的交 II

来源:互联网 发布:腾讯视频mac版 下载 编辑:程序博客网 时间:2024/04/29 17:54
问题描述:

计算两个数组的交


样例:
nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].



解题思路:

先排序 但是这个是有几个相同的就存几个 ,第二个循环的第一个数只要比要判断的数大就跳出循环。


代码:

class Solution {public:    /**     * @param nums1 an integer array     * @param nums2 an integer array     * @return an integer array     */    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {        // Write your code here         vector<int> a;         sort(nums1.begin(),nums1.end());          sort(nums2.begin(),nums2.end());          int k=0;        for (int i=0;i<nums1.size();i++) {           for(int j=k;j<nums2.size();j++){           if(nums2[j]>nums1[i])break;           if(nums1[i]==nums2[j]){a.push_back(nums1[i]);k=j+1;break;}           }        }        return a;    }};




感想:

有几个相同的就存几个,省去了一些判断。