Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情
题目描述
- 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。
- 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。
- 示例1
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
- 示例2
输入: nums = [3,2,4], target = 6
输出: [1,2]
- 示例3
输入: nums = [3,3], target = 6
输出: [0,1]
思路分析
- 从数组中找出两个数字之和等于目标target的值
- 首先设置两个循环
- 在第一个循环中,从 i=0 开始,取到每一个值
- 第二个循环,从 i+1 开始,取到每一个值,然后在第一轮每次循环中都要进行arr.leng-i-i次循环,每次循环进行判断两数之和是否等于target值
- 若两个数之和等于target值,就可以return出它们的下标,循环结束
AC代码
for(let i=0; i<nums.length; i++) {
for(let n=i+1; n<nums.length; n++) {
if(nums[i] + nums[n] == target) {
// return [i, n];
console.log([i, n]);
}
}
}
总结
这是一个简单的算和算法,主要考数组的循环方法利用,复杂类型属于简单的;这道算法题还有很多种解法,这里只是给出了一个简单的解决方法(出自力扣)。