LeetCode 01兩數之和

2021-09-26 14:52:28 字數 1389 閱讀 3743

題目:給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:給定 nums = [2, 7, 11, 15],   target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

public

int[

]twosum

(int

nums,

int target)}}

return indexs;

}

兩次迭代。

第一次迭代:將每個元素的值和它的索引新增到表中。

第二次迭代:將檢查每個元素所對應的目標元素(target - nums[i])是否存在於表中。

注:該目標元素不能是 nums[i]本身!

//自己寫的

public

int[

]twosum

(int

nums,

int target)

;// 建立雜湊表

hashmap

hash =

newhashmap

<

>()

;// 第一次迭代:將每個元素的值和它的索引新增到表中。

for(

int i =

0; i < nums.length; i++

)// 將檢查每個元素所對應的目標元素(target - nums[i])是否存在於表中。

for(

int i =

0; i < hash.

size()

; i++)}

return indexs;

}

答案:

public

int[

]twosum

(int

nums,

int target)

// 將檢查每個元素所對應的目標元素(target - nums[i])是否存在於表中。

for(

int i =

0; i < hash.

size()

; i++);

}}throw

newillegalargumentexception

("no two sum solution!");

}

心得:使用雜湊表的key能夠快速找到元素,然後用get(key)就能知道索引,這樣就不用遍歷,從而降低複雜度!

把建立map和查詢map合成一步

。。。。

Leetcode01 兩數之和

我的提交 暴力解法 class solution for int i 0 i nums.length i throw new illegalargumentexception no two sum solution 複雜度分析 方法三 一遍雜湊表 事實證明,我們可以一次完成。在進行迭代並將元素插入到...

Leetcode01 兩數之和

給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。力扣 你可以按任意順序返回答案。示例 1 輸入 nums 2,7,11,15 target 9 ...

兩數之和 LeetCode 01

題目描述 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...