文章 评论 浏览 29
哈希表,时间复杂度O(m + n) m为nums1长度,n为nums2长度
const intersect = (nums1, nums2) => { const map = {} const res = [] for (let n of nums1) { if (map[n]) { map[n]++ } else { map[n] = 1 } } for (let n of nums2) { if (map[n] > 0) { res.push(n) map[n]-- } } return res }
@Muscliy let 关键字将 for 循环的块隐式地声明为块作用域。而 for 循环头部的 let 不仅将 i 绑定到了 for 循环的块中,事实上它将其重新绑定到了循环的每一个迭代中,确保使用上一个循环迭代结束时的值重新进行赋值。这是《你不知道的 JavaScript》中的解释。
文章 0 评论 0
接受
哈希表,时间复杂度O(m + n) m为nums1长度,n为nums2长度
第 59 题:给定两个数组,写一个方法来计算它们的交集