亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求兩個數組的并集減去交集的部分,有什么好的算法?

求兩個數組的并集減去交集的部分,有什么好的算法?

哆啦的時光機 2018-11-23 19:14:20
var arr1 = [1,2,3,4,5,6,7]var arr2 = [3,5,7,9,12,14]求兩個數組的去除重復元素后(指將兩邊的重復元素都刪除,例如3重復,則在結果中不能有3,與數組去重不同)的合并的數組,即數組的并集減交集的部分,不知道這個部分有什么數學名稱沒有。求一個時間復雜度較低的算法?
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

用 set 做索引再遍歷較短的 O(n)

var s1 = new Set(arr1)

var s2 = new Set(arr2)

if (s1.size > s2.size) { [s1, s2] = [s2, s1] } // 讓 s1 較短

s1.forEach(n => s2.has(n) && (s1.delete(n), s2.delete(n)))

var result = [...s1, ...s2]


查看完整回答
反對 回復 2018-12-27
  • 1 回答
  • 0 關注
  • 483 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號