【javascript演算法 力扣刷題 兩個陣列的交集(簡單)】

語言: CN / TW / HK

本文講述的是力扣第349題:兩個陣列的交集。

這個題目的要求是兩個陣列之間的交集,並且需要的是一個無重複的陣列,所以需要一個set資料結構。 但是最後如何轉成一個數組輸出出去,則需要用到一個Array.from(Set)的方法解決這個問題。

那麼我們來看一下下方程式碼的解決方式。

``` var intersection = function(nums1, nums2) {

//考慮到題目需要返回的結果是交集,而且是不重複的交集,果斷把res定義為set

const res = new Set()

if(nums1 === [] || nums2 === []){

return []

}

//這就來嘗試一下把nums2轉化為set的方式

const set = new Set(nums2)

for(num of nums1){

//nums2.includes這個方法是對一個值的查詢的時間複雜度是o(n)

//如果能把nums2轉化為set,並用set.has(?)來判斷,時間複雜度可以縮減為o(1)。

if(nums2.includes(num)){

//if(set.has(num)){

res.add(num)

}

}

//Array.from也是將set資料結構轉化為陣列的其中一個方法。

return Array.from(res)

}; ```