兩個陣列的交集(Intersection of Two Arrays)
兩個陣列的交集(Intersection of Two Arrays)
虛擬碼
沒空寫 |
解題
350. Intersection of Two Arrays II
題目說明
輸入2個陣列nums1和nums2,求這2個陣列有交集的元素。
比如範例輸入的nums1 = [1,2,2,1], nums2 = [2,2],元素有2個2都出現,所以要回傳[2, 2]。


解法
對此2個陣列都從小到大排序,建立兩個指標i和j各自從nums1和nums2的最小值往上比對:
如果目前指標指向的值一樣,代表是交集的元素,加入答案,i和j都遞增
如果目前指標指向的值nums1[i] > nums2[j],代表nums2更後面的值要拿來與nums1比對,所以只有j遞增
如果目前指標指向的值nums1[i] < nums2[j],代表nums1更後面的值要拿來與nums2比對,所以只有i遞增
最終i和j有超過nums1/nums2的長度就結束。
Javascript
/** |
[name=@denny0628] [time=Tue, Nov 23, 2022 14:45 PM] [color=#907bf7]
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Joeの小屋!
評論
ValineDisqus



