1、暴力破解,循环找,找到则在数组中剔除
var intersect = function(nums1, nums2) {
let result = []
for(let i=0; i<nums1.length; i++) {
let index = nums2.findIndex(item => item === nums1[i])
if(index>-1) {
result.push(nums1[i])
nums2.splice(index,1)
}
}
return result
};
2、单指针,首先排序后从前对比,匹配则都后移一位,不匹配则小的后移一位
var intersect = function(nums1, nums2) {
let result = []
let i=0
let j=0
nums1.sort((a,b) => a - b)
nums2.sort((a,b) => a - b)
while(i<nums1.length && j<nums2.length) {
if(nums1[i] === nums2[j]){
result.push(nums1[i])
i++
j++
} else {
if(nums1[i] < nums2[j]){
i++
} else {
j++
}
}
}
return result
};
网友评论