比較兩陣列,找出兩者共同element,並回傳,若元素重複出現也照實回傳,回傳的陣列順序以第一個為準
思考邏輯:使用include(Ruby叫include?,JavaScript叫includes)判斷nums2中是否有該元素(nums1[index]),若沒有則將其從nums1中刪除,若有的話將其從nums2中刪除(避免重複判斷),最後回傳nums1。
def intersect(nums1, nums2)
if nums1.length > nums2.length
(0..(nums1.length)-1).each do |index|
if !nums2.include?(nums1[index])
nums1[index]=""
else
nums2[nums2.index(nums1[index])]=""
end
end
nums1.delete("")
else
(0..(nums2.length)-1).each do |index|
if !nums2.include?(nums1[index]) && nums1[index] != nil
nums1[index]=""
elsif nums1[index] != nil
nums2[nums2.index(nums1[index])]=""
end
end
nums1.delete("")
end
nums1
end
var intersect = function(nums1, nums2) {
if (nums1.length > nums2.length){
for(let i=0; i<nums1.length; i++){
if(!nums2.includes(nums1[i])){
nums1.splice(i, 1)
i-=1
}else{
nums2[nums2.indexOf(nums1[i])] = ""
}
}
}else {
for(let i=0; i<nums2.length; i++){
if(!nums2.includes(nums1[i]) && nums1[i] !== undefined){
nums1.splice(i, 1)
i-=1
}else if(nums1[i] !== undefined){
nums2[nums2.indexOf(nums1[i])] = ""
}
}
}
return nums1
};
小結: