N0 1 兩數之和

2021-10-10 22:38:27 字數 1624 閱讀 6275

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,

並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

給定 nums =

[2, 7, 11, 15], target = 9

因為 nums[0] + nums[1]

= 2 + 7 = 9

所以返回 [0, 1]

my code(暴力)
class

solution

(object):

deftwosum

(self,nums,target)

:for i in

range

(len

(nums)):

num = nums[i]

nums[i]=-

99999999

#將其換下,防止找到重複的

flag = target - num

if flag in nums:

return

[nums.index(

-99999999

),nums.index(flag)

] nums[i]

= num

return

none

時間複雜度:o(n

2n^2

n2)空間複雜度:o(1)

better code(雜湊表)

class

solution

(object):

deftwosum

(self,nums,target)

: hashtable =

dict()

for i,num in

enumerate

(nums)

:if target - num in hashtable:

return

[hashtable[target-num]

,i] hashtable[num]

= i return

none

時間複雜度:o(nnn)

空間複雜度:o(nnn)

tip :python enumerate() 函式

enumerate() 函式用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。

enumerate

(sequence,

[start=0]

)

>>

>seasons =

['spring'

,'summer'

,'fall'

,'winter'

]>>

>

list

(enumerate

(seasons))[

(0,'spring'),

(1,'summer'),

(2,'fall'),

(3,'winter'

)]

N0 1每週心得

加入小組已經有幾周的時間了,今天談談我這幾周生活和學習上的改變 從暑假的每天睡懶覺到現在的準時準點到小組學習 每天都過得很充實,雖然和我步入大學之前想象中的輕鬆娛樂大學生活不太一樣,但忙碌充實也讓我感悟到了大學真正的魅力 提公升自己,成為更優秀的自己。並且這週六我們小組聚餐中,有機會能和學長學姐們深...

01 兩數之和

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

01 兩數之和

給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回...