題目:給定乙個整數陣列 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...