两数之和
1.题目描述
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
给定 nums = [2,7,11,15], target (目标) = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0,1]
2.题目分析
- 题目给出了一个整数数组和目标值,所以定义的函数就该传入这两个参数;
- 不能重复使用数组中下标相同的元素;
- 函数最后返回的值是满足条件的两个数的索引值。
3.解题
(1) 解法一
var twoSum = function(nums, target) { var arrs = []; for (var i = 0; i < nums.length - 1; i++) { for (var j = i + 1; j < nums.length; j++) { if (target == nums[i] + nums[j]) nums.push(i); nums.push(j); } return arrs; } };
(2) 解法二
var twoSum = function(nums, target) { for (var i = 0; i < nums.length - 1; i++) { for (var j = i + 1; j <nums.length; j++) { if (target = nums[i] = nums[j]) { return [i,j]; } } } };
(3) 总结
1.js中的Array对象的push()方法表示可以向数组的末尾添加体格或多个元素,并返回新的长度。
2.push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个
3.新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
该方法会改变数组的长度。