LeetCode題目(Python實現) 兩數之和

2021-10-03 03:12:13 字數 1454 閱讀 4341

雜湊表法

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

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

示例:

給定 nums =[2

,7,11

,15], target =

9因為 nums[0]

+ nums[1]

=2+7

=9所以返回 [0,

1]

class

solution

:def

twosum

(self, nums: list[

int]

, target:

int)

-> list[

int]

: j =

len(nums)

for i in

range

(j):

t = target - nums[i]

if t in nums[i +1:

]:return

[i, nums.index(t, i +1)

]else

:continue

執行結果: 通過

執行用時: 868 ms, 在所有 python3 提交中擊敗了36.49%的使用者

記憶體消耗: 14.1 mb, 在所有 python3 提交中擊敗了68.74%的使用者

先按照自己的想法設計,通過判斷target - nums[i]是否存在於後面的列表中來找到另乙個數字,演算法並不是很快。之後學習了雜湊表法,通過建立字典,將鍵與num1匹配,值與num1的索引匹配,一邊遍歷陣列,一邊查詢並將鍵值加入字典中,由於雜湊表查詢時間複雜度低,所以會快很多。

leetcode 字母異位詞分組(python)

題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...

leetcode 200 島嶼數量 python

給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11...

leetcode 字母異位詞分組 python3

給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...