1.兩數(shù)之和

題目描述:
給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)整數(shù)目標(biāo)值 target ,請(qǐng)你在該數(shù)組中找出 和為目標(biāo)值 target 的那 兩個(gè) 整數(shù),并返回它們的數(shù)組下標(biāo)。
你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,數(shù)組中同一個(gè)元素在答案里不能重復(fù)出現(xiàn)。
你可以按任意順序返回答案。

示例1:
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋?zhuān)?/strong>因?yàn)?nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例2:
輸入:nums = [3,2,4], target = 6
輸出:[1,2]

示例3:
輸入:nums = [3,3], target = 6
輸出:[0,1]

提示:

  • 2 <= nums.length <= 10^4
  • -10^9 <= nums[i] <= 10^9
  • -10^9 <= target<= 10^9
  • 只會(huì)存在一個(gè)有效答案

進(jìn)階:你可以想出一個(gè)時(shí)間復(fù)雜度小于 O(n^2) 的算法嗎?

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum

解法一(兩層嵌套循環(huán))
思路:
做嵌套循環(huán)(但通過(guò)執(zhí)行結(jié)果可以看到用時(shí)較久,后面會(huì)用哈希映射解法來(lái)做)

代碼:

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    var i,j;
    for(i=0;i<nums.length-1;i++){
        for(j=i+1;j<nums.length;j++){
           if(nums[i]+nums[j]==target){
                return [i,j];
            } 
        }
    }
    
};

執(zhí)行結(jié)果:

image.png

解法2(哈希映射解法)
思路:
通過(guò)創(chuàng)建Hash表,以map.has() / map.get()來(lái)快速找值

代碼:

var twoSum = function(nums, target) {
    let map = new Map();//創(chuàng)建Map
    let len = nums.length;
    for(let i = 0;i < len;i++){ 
        let key = target - nums[i];
        if(map.has(key)){//判斷是否存在key值,符合的便返回對(duì)應(yīng)下標(biāo)
            return [map.get(key),i];
        }
        map.set(nums[i],i);//不符合的就存入hash表
    }
};

執(zhí)行結(jié)果:

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 兩數(shù)之和(two-sum) 這是LeetCode上一道十分經(jīng)典的題目,存在多種解法,難度是簡(jiǎn)單,但后面難度更高的三...
    ZenMoto閱讀 599評(píng)論 0 0
  • 為了更好的明天,堅(jiān)持刷 LeetCode[https://leetcode-cn.com/u/k8scat/]! ...
    K8sCat閱讀 241評(píng)論 0 0
  • 兩數(shù)之和(簡(jiǎn)單) 1. 題目描述 給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出和為目...
    Java全棧路線閱讀 323評(píng)論 0 1
  • 給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)整數(shù)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出 和為目標(biāo)值 target 的那 ...
    年少為云閱讀 190評(píng)論 0 0
  • 題目 給定一個(gè)整數(shù)數(shù)組 nums和一個(gè)整數(shù)目標(biāo)值 target,請(qǐng)你在該數(shù)組中找出 和為目標(biāo)值 的那兩個(gè)整數(shù),并返...
    陶特斯閱讀 198評(píng)論 0 0

友情鏈接更多精彩內(nèi)容