1. 題目
給定一個
整數數組nums
和一個整數目標值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]
解釋: 因爲nums[1] + nums[2] == 6,返回[1,2]。
提示:
2. 思路
2.1 暴力破解法
看到這道題,首先想到的就是暴力破解法,通過兩個
for
循環去遍歷數組nums
找到兩個數相加等於目標值target
的相對的下標。實現代碼如下:
結果:在這裏可以看到暴力破解法不僅耗時長,而且內存消耗也很大。
2.2 Map數據結構
利用js中map集合通過差值來尋找,實現代碼如下:
結果:
只循環一次,然後求得target和當前數值的差值,存放在map裏面,去map裏面循環看是否有這個目標值,有的話,返回對應值的下標。