单一答案的解题思路
知识点:
解题过程:
代码:
const numbers = [2, 7, 3, 6, 1, 10, 8, 2] const target = 9 /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var index = function(nums, target) { // 定义个map,为了存放查询到的值和下标,存放格式:Map.set('key1', 'value1'); let map = new Map() // 循环整个数组 for(let i = 0; i < nums.length; i++) { // 拿到当前被除值(x) let x = target - nums[i] // 查询map中是否存在被除值(x) if(map.has(x)) { // 返回数组【被除值的下标 和 nums[i]的下标】 return [map.get(x),i] } // 把数组的值和下标存储到map中 map.set(nums[i],i) } }; 这样调用index函数时输出下标: 【0, 1】
多种答案的解题思路
知识点:
解题过程:
代码:
const numbers = [2, 7, 3, 6, 1, 10, 8, 2] const target = 9 /** * @param {number[]} nums * @param {number} target * @return {number[]} */ var index = function(nums, target) { // 定义个map,为了存放查询到的值和下标,存放格式:Map.set('key1', 'value1'); let map = new Map(); // 查询到的所有数据 let result = []; // 循环整个数组 for(let i = 0; i < nums.length; i++) { // 拿到当前被除值(x) let x = target - nums[i] // 查询map中是否存在被除值(x) if(map.has(x)) { // 查询到数据存放到result数组中【被除值的下标 和 nums[i]的下标】 result.push([map.get(x),i]) } // 把数组的值和下标存储到map中 map.set(nums[i],i) } }; 这样调用index函数时输出下标: 【【0,1】,【2,3】,【4,6】,【1,7】】