給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
雜湊查詢的時間複雜度為 o(1),所以可以利用雜湊容器 map 降低時間複雜度。遍歷nums陣列中的元素,查詢hashmap中是否存在等於target-nums[i]的key值,若存在,得到結果;若不存在,將nums[i]作為key,i作為value插入hashmap中。
public
int[
]twosum
(int
nums,
int target);}
result.
put(nums[i]
,i);
}throw
newillegalargumentexception
("no two sum solution");
}
Leetcode演算法題
56.合併區間 給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 intervals 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 intervals 1,4 4,5 輸出 1,5 解釋 ...
Leetcode演算法題
20 有效的括號 題目描述 給定乙個只包括 的字串 s 判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。示例 示例 1 輸入 s 輸出 true 示例 2 輸入 s 輸出 true 示例 3 輸入 s 輸出 false 示例 4 輸入 s 輸出 fal...
Leetcode 演算法題07
169.majority element 輸入乙個列表,找出其中出現次數超過列表長度一半的數 我的 class solution object def majorityelement self,nums type nums list int rtype int count collections.c...