/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
function twoSum( numbers , target ) {
// write code here
let arr = numbers,arr1 = [];
try {
arr.map((ele,k) => {
arr.map((ment,y) => {
if(ele+ment == target&&k!=y){
console.log(ele,k,ment,y)
arr1.push(k+1)
arr1.push(y+1)
throw new Error('end')
}
});
});
} catch (e) {
if(e == 'end'){
return;
}
}
return arr1;
}
module.exports = {
twoSum : twoSum
}; 以上是使用es6新增的map的方法,可以把map换成forEach,some这些,都是ok的,因为forEach和map都是不能跳出循环的,里面写了break会报错,但是可以些return,但是实际效果是只是阻止了return之下的代码不会执行(单次的),并不是跳出循环,所以需要使用try catch跳出循环。
下面是最简单粗暴的方法,双循环
/**
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
function twoSum( numbers , target ) {
// write code here
let arr = numbers,arr1 = [];
for(let i =0;i<arr.length;i++){
for(let j=1;j<arr.length;j++){
if(arr[i]+arr[j]==target&&i!=j){
console.log(arr[i],i,arr[j],j)
arr1.push(i+1)
arr1.push(j+1)
return arr1;
}
}
}
}
module.exports = {
twoSum : twoSum
}; 每次找js题解都没有,大佬们加油啊!淦它


京公网安备 11010502036488号