給定乙個整數陣列 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 所以返回...