技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2025 iThome 鐵人賽
DAY
10
0
自我挑戰組
從零開始學習LeetCode
系列 第
10
篇
Day10 Intersection of Two Arrays
17th鐵人賽
pinggg
2025-09-24 22:26:15
68 瀏覽
分享至
題目:給定兩個整數陣列 nums1 和 nums2,請回傳它們的 交集(不重複元素)
結果中的每個元素必須是唯一的,順序不重要。
解法一
雙層迴圈比對
速度太慢
註解:
for i in nums1:逐一檢查 nums1 的每個元素
if i in nums2:檢查是否也存在於 nums2
i not in result:避免重複加入交集
理解:
就像拿著 nums1 的元素,一個一個去 nums2 裡比對,看能不能找到一樣的數字
解法二
Set 集合運算
Python 最推薦的方法
註解:
set(nums1):把 nums1 轉成集合,自動去除重複元素
&:集合的交集運算,取出共同元素
list(...):最後轉回列表
理解:
就像兩張名單,先把重複的名字去掉,再找出名單裡同時出現的名字
解法三
排序 + 雙指針
可以在「不能用額外資料結構」的情況下使用
註解:
nums1.sort(), nums2.sort():先把兩個陣列排序
i, j:兩個指標,分別走訪 nums1 與 nums2
nums1[i] == nums2[j]:找到相同元素,加進 result(避免重複)
nums1[i] < nums2[j]:移動小的指標,避免錯過交集
時間複雜度:O(n log n + m log m) → 取決於排序
理解:
就像兩本排序好的字典,一邊翻一邊比對,如果字母一樣就記下來;如果不一樣,就翻動比較小的那一本
留言
追蹤
檢舉
上一篇
Day9 Valid Anagram
下一篇
Day 11 Intersection of Two Arrays II
系列文
從零開始學習LeetCode
共
30
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
26
Day 26 Valid Parentheses
27
Day 27 Longest Common Prefix
28
Day 28 Valid Palindrome
29
Day29 First Unique Character in a String
30
Day30 總結
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19838
篇
完賽人數
529
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
FortiGate 的VLAN Switch問題
源碼檢測稽核會不會超耗時
內控內稽的作業流程圖.請問哪裡有設備工程業的
你們都在哪裡購買SSL
WIN SERVER 出現錯誤LOG
VMware上的虛擬機多了一個VMDK的硬碟在增長
浮水印在PDF上沒有辦法顯示
DOCKER問題請教
越南 Oracle EBS 輔導顧問公司
熱門回答
你們都在哪裡購買SSL
源碼檢測稽核會不會超耗時
FortiGate 的VLAN Switch問題
內控內稽的作業流程圖.請問哪裡有設備工程業的
WIN SERVER 出現錯誤LOG
熱門文章
Google 暗網監控 暗網報告
[實作] 不用買貴森森的 Vector!我用 Python 自製了一套 J1939 CAN Bus 解碼器
資料視覺化工具比較全攻略:選出最懂你的可視化平台
別找了!最全資料視覺化配色指南在這
掌握財務命脈:揭祕16個常用的財務指標
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}