const arr = [1,5,2,4,12,9,62,23,56,61,58,50,8]
const target = 62
const twoSum = (arr,target)=>{
arr = arr.sort((a,b)=>a-b)
let left = 0
let right = arr.length-1
let sumArr = []
while(left<right){
if(arr[right]>target){
right--
continue
}
if(arr[left]>target){
left++
continue
}
let sum = arr[left] + arr[right]
if(sum>target){
right--
}else if( sum<target){
left++
}else{
sumArr.push([arr[right],arr[left]])
left++
}
}
return sumArr
}
console.log(twoSum(arr,target))
//0: (2) [61, 1]
//1: (2) [58, 4]
//2: (2) [50, 12]
网友评论