leetcode刷題筆記 02 兩數之和

2021-09-27 16:34:00 字數 919 閱讀 9903

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

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

示例:給定 nums = [2, 7, 11, 15], target = 9,因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

採用字典模擬hash,因為hash(key)=addr,故可以採用字典模擬hash的對映關係。例:hash=,故hash[key2] = 2

建立空的hash字典

用python中enumerate()函式,返回索引和索引對應的數值

判斷target-num中的值是否在hash字典中,如果在字典中,即返回hash字典中該值的hash對映位址,並且同時返回該num下的index;如果不在字典中,則將該num新增到hash字典中,並且傳入index為該num的鍵值

class

solution

:def

twosum

(self, nums: list[

int]

, target:

int)

-> list[

int]

: hashmap =

for index,num in

enumerate

(nums)

: another_num = target - num

if another_num in hashmap:

return

[hashmap[another_num]

,index]

hashmap[num]

= index

1.時間複雜度為o(n)

leetcode刷題筆記02

如2 ab2 c abccabcc,3 a2 b abbabbabb 看到這種題型第一反應是剛開始演算法學習的時候,括號匹配問題,第二反應是遞迴。對於棧的解決方法如下 class solution else if character.isletter cur cur else collections...

LeetCode刷題筆記 兩數相加

給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 1 輸入 l1 2,4,3 l2 5,6,4 輸出 7,0,8 ...

LeetCode刷題筆記 兩數之和

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