leetcode 349 兩個陣列的交集

2021-10-24 15:36:21 字數 1438 閱讀 6578

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

示例 1:

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

輸出:[2]

示例 2:

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

輸出:[9,4]

說明:

輸出結果中的每個元素一定是唯一的。

我們可以不考慮輸出結果的順序。

思路1

第乙個vector轉為set,然後遍歷第二個vector,若第二個vector元素在set中存在,則把該元素存下來。最後因為題目輸出要求元素唯一,故需要對vector去重出結果。vector去重可以戳這裡。

關於set,c++ 給提供了如下三種可用的資料結構

std::set

std::multiset

std::unordered_set

std::setstd::multiset底層實現都是紅黑樹,std::unordered_set的底層實現是雜湊表, 使用unordered_set讀寫效率是最高的,我們並不需要對資料進行排序,而且還不要讓資料重複,所以選擇unordered_set

ac**

class solution 

}unordered_sets(res.begin(), res.end());

res.assign(s.begin(), s.end());

return res;

}};

思路2

**rust版本還沒寫完,c++版本我先copy過來:

class solution 

return ans;

}};

rust版本,待續。。。

use std::collections::hashmap;

fn main()

for (pos, ele) in nums1.iter().enumerate()

, and ele is ", pos, ele);

hmap.insert(pos, ele);

}for (pos, ele) in nums2.iter().enumerate()

, and ele is ", pos, ele);

}}

leetcode349 兩個陣列交集

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

LeetCode349 兩個陣列的交集

給定兩個陣列,寫乙個函式來計算它們的交集。例子 給定num1 1,2,2,1 nums2 2,2 返回 2 題目分析 首先,將num1的元素存進s1,完成了一步去重 同樣,將num2的元素存進s2,也完成了一步去重 將所有的元素存進s.所以s s1 展示 class solution for aut...

Leetcode 349 兩個陣列的交集

給定兩個陣列,編寫乙個函式來計算它們的交集。示例 1 輸入 nums1 1,2,2,1 nums2 2,2 輸出 2 示例 2 輸入 nums1 4,9,5 nums2 9,4,9,8,4 輸出 9,4 說明 輸出結果中的每個元素一定是唯一的。我們可以不考慮輸出結果的順序。class solutio...