給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
我的思路挺簡單的,兩個for迴圈。第一次在這個**刷題,除了和ccf題輸入輸出有些不同,感覺有點彆扭外,感覺這個**刷題很棒!還有官方給出答案,可以學到很多東西!
這題還是比較簡單的,之所以記錄下來,是因為官方給出了另乙個解法,用雜湊降低了時間複雜度,從o(n2)降到了o(n),但是空間複雜度從o(1)變為了o(n)。**如下:class solution:
def twosum(self, nums: list[int], target: int) -> list[int]:
for i in range(len(nums)):
for j in range(i,len(nums)):
if nums[i]+nums[j]==target and i!=j:
return[i,j]
return
2.首先,雜湊表是用來儲存key-value鍵值對的集合,而python中的內建資料型別字典就是用雜湊表實現的。class solution:
def twosum(self, nums: list[int], target: int) -> list[int]:
hashtable = dict()
for i, num in enumerate(nums):
if target - num in hashtable:
return [hashtable[target - num], i]
hashtable[nums[i]] = i
return
for i, num in enumerate(nums):
這句用的秒,enumerate()函式是用來列舉,這個既可以得到數又可以得到數的下標。然後這個字典是將值作為key,值對應的下標作為value,輸出的是value,即下標。這個真的很好用!
說明:
leetCode刷題 兩數之和
兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...
leetcode刷題 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
leetCode刷題 兩數之和
兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums...