湖州本地做网站,在线教育类网站模板,哈尔滨市建设工程质量安全站,珠海做网站最好的公司题目#xff1a;给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是#xff0c;数组中同一个元素在答案里不能重复出现。 你可以… 题目给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 var list [2, 7, 11, 15]; var target 26 方法1双重for循环 function sumTest() {for (let i 0, len list.length; i len; i) {// 下标 1for (let n i 1; n len; n) {if (list[i] list[n] target) {return [i, n];}}}
}
console.log(sumTest()); // [2,3] 方法2new Map() function sumTest() {const map new Map();for (let i 0, len list.length; i len; i) {// 判断是否是map中的数据if (map.has(target - list[i])) {return [map.get(target - list[i]), i];}// 如果不是 使用 set 方法添加进去 map.set(list[i], i);}return [];
}
console.log(sumTest());
方法3递归 function sumTest(i) {// 计算出差值var num target - list[i]; // find 方法查询数组总是否有 差值var diffNum list.find((item) item num);if (diffNum undefined) {// 没有就返回继续执行这个函数 下标 1return sumTest(i 1);} else {var array [i, list.indexOf(diffNum)];}return array;
}
console.log(sumTest(0)); // [2,3]