二つの配列IIの【Leetcode350】交差点

ランタイム:4ミリ、二つの配列IIの交差点のためのC ++オンライン提出の高速化よりも99.18パーセント。

メモリ使用量:7.9メガバイト、二つの配列IIの交差点のためのC ++オンライン提出未満の100.00パーセント。

ほとんど349の質問では、実際には、私の答えは、しかし、利点のセットの分析で349件の質問が注文されたのと同様に、他のがユニークであるので、最初のソートを行っていないことができ349マルチセットに設定されている交換します重い(ユニークな機能のみを再ソートに本当の必要性の前に、隣接する重複を削除することができます)

そしてここで、ユニーク必要としない、それが使用されていないセット、要件を満たすマルチセットが、唯一の場合は秩序を追求するために、ソート解決することができ、新しいセットを作成するために、時間と空間を取る必要はありません。

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

            }else{
                p2++;
            }
        }
        return result;
    }
};

 

公開された112元の記事 ウォン称賛15 ビュー20000 +

おすすめ

転載: blog.csdn.net/weixin_39458342/article/details/104852884