Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务

91 阅读1分钟

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]);
        }
    }
}

总结

这是一个简单的算和算法,主要考数组的循环方法利用,复杂类型属于简单的;这道算法题还有很多种解法,这里只是给出了一个简单的解决方法(出自力扣)。