leetcode兩數之和python

2021-08-21 15:58:41 字數 1057 閱讀 7398

在編寫leecode上的演算法第一題「兩數之和」時,遇到了一些問題,如下:

1.引數丟失

>>>solution.twosum([2,3,4,5],8)

typeerror: twosum() missing 1 required positional argument: 'target'

原因:沒有建立物件

解決:>>>a = solution()      #括號很重要

>>>a.twosum([2,3,4,5],8)

2.超出時間顯示

原因:時間複雜度高 o(n2)

class solution:

def twosum(self, nums, target):

""":type nums: list[int]

:type target: int

:rtype: list[int]

"""i = 0

n = len(nums)

while i < n:

j = i+1

while j 解決: 降低時間複雜度,o(n) 

class solution:

def twosum(self,nums, target):

"""

:type nums: list[int]

:type target: int

:rtype: list[int]

"""

#用len()方法取得nums列表長度

n = len(nums)

#建立乙個空字典

d = {}

for x in range(n):

a = target - nums[x]

#字典d中存在nums[x]時

if nums[x] in d:

return d[nums[x]],x

#否則往字典增加鍵/值對

else:

d[a] = x

#邊往字典增加鍵/值對,邊與nums[x]進行對比

leetcode 兩數之和與兩數之和

題目描述 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 返回的下標值 index1 和 index2 不是從零開始的。你可以假設每個輸入只對應唯一的答案,而且你不...

LeetCode 兩數之和

基礎不好,筆試 題沒做好,校招沒offer,趕緊來刷題 這裡採用兩種方法來做,比較效能。nums i for i in range 1,100000000 target 3 class solution object deftwosum self,nums,target if len nums 1 ...

兩數之和(LEETCODE)

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 下面是 include stdafx.h includ...