001.两数之和
/* 题目描述 */ /************************************************************************************************* 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] *************************************************************************************************/ // 第一种方法:执行两次循环,遍历第一个元素与剩下的所有元素是否有等于目标的,再遍历第二个元素与剩下的元素,以此类推 // var twoSum = function(nums, target) { // var len = nums.length // for (i=0; i<len-1; i++) { // for (j=i-1;j<len;j++) { // if(nums[i]+nums[j]===target){ // return [i,j] // } // } // } // } // 第二种哈希 var twoSum = function (nums, target) { let obj = {} for (i = 0; i < nums.length; i++) { temp = target - nums[i] if (obj[temp] !== undefined) { return [obj[temp], i] } else { obj[nums[i]] = i } } return [] }
转载自:
front_end-demos/src/leetcode at master · fengxianqi/front_end-demos · GitHub

浙公网安备 33010602011771号