1. 程式人生 > >350. 兩個陣列的交集

350. 兩個陣列的交集

給定兩個陣列,編寫一個函式來計算它們的交集。

示例 1:

輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2,2]

示例 2:

輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [4,9]

說明:

  • 輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。
  • 我們可以不考慮輸出結果的順序。

進階:

  • 如果給定的陣列已經排好序呢?你將如何優化你的演算法?
  • 如果 nums1 的大小比 nums2 小很多,哪種方法更優?
  • 如果 nums2 的元素儲存在磁碟上,磁碟記憶體是有限的,並且你不能一次載入所有的元素到記憶體中,你該怎麼辦?

解題思路:使用hash來做unordered_map<int,int>m

class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int,int>m1;
        vector<int>v;
        for(auto num:nums1){m1[num]++;}
        for(auto num:nums2){
            if(--m1[num]>=0)v.push_back(num);
        }
        return v;
    }
};

相關推薦

【LeetCode】 350. 陣列交集 II

1.題目 給定兩個陣列,編寫一個函式來計算它們的交集。 2.思路 此題對第一題的區別在於可以輸出相同數字 例如:輸入【1,2,2,1】,【2,2】;輸出【2,2】 step1:遍歷兩個向量; step2:把兩個陣列重複的元素加入到vector res中(可以

Leetcode 350.陣列交集|| By Python

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸出結果中每個元素

350. 陣列交集 II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

LeetCode陣列-350.陣列交集||

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,

LeetCode之350. 陣列交集 II

運用的知識:  對映    。              參考:自定義對映(Map)   題目描述: 給

350. 陣列交集 II-Python-LeetCode

一、題目 二、解法 結語 一、題目 給定兩個陣列,編寫一個函式來計算它們的交集。 例1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 例2:

350. 陣列交集

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

350. 陣列交集 II (python)

一. 題目 給定兩個陣列,寫一個方法來計算它們的交集。 例如: 給定nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 注意:   輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。    我們可以不考慮

350.陣列交集II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9]

leetcode 350. 陣列交集 II python

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4

LeetCode 350. 陣列交集 II

給定兩個陣列,寫一個方法來計算它們的交集。例如:給定nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:  輸出結果中每個元素出現的次數,應與元素在兩個陣列中出現的次數一致。   我們可以不考慮輸出結果的順序。跟進:如果給定的

【Leetcode】【簡單】【350. 陣列交集 II】【JavaScript】

題目描述 350. 兩個陣列的交集 II 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2]輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]輸出: [4,9] 說明

leetcode349:陣列交集

思想: 題目要求給定兩個陣列,編寫一個函式來計算它們的交集。 1.定義變數ans儲存兩個陣列的交集 2.將nums1和nums2去重 3.判斷nums1中的元素num是否在nums2中,若在則新增ans中,不在則繼續for迴圈 class Solution(object):

【LeetCode】350. Intersection of Two Arrays II(陣列交集 II)-map實現

問題描述: 實現程式碼:. #include <iostream> #include <vector> #include <map> using namespace std; // 時間複雜度: O(nlogn) // 空間複雜

LeetCode刷題記錄——第350題(陣列交集 II)

題目描述 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,

【LeetCode】 349. 陣列交集

1.題目 給定兩個陣列,編寫一個函式來計算它們的交集。 2.思路 step1:遍歷兩個向量; step2:把重複的元素加入到set中(set不重複) step3:返回set對應的vector 注意:陣列1、2為空集的時候,直接返回空集 3.程式碼 vec

陣列交集 II [JS]

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: 輸出結果中每個元

leetCode 349號題目詳解 陣列交集 ,python3種方式實現, 複雜度分別為O(n^2) 和 O(n)

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4] 說明: 輸出結果中的每個元素一

leetcode349. 陣列交集陣列

題目: 給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4]

查詢表類演算法//陣列交集 II

給定兩個陣列,編寫一個函式來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2,2] 示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [4,9] 說明: