1、兩數之和
思路:在訪問資料元素的時候,把它儲存下來。在訪問其它的元素時就可以找它對應組成和的那個元素是否在訪問過的裡面,這樣一次迴圈就夠了。利用python的字典。
class solution:
def twosum(self, nums, target):
""":type nums: list[int]
:type target: int
:rtype: list[int]
"""
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刷題記錄
我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...
LeetCode刷題記錄
動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...
leetcode刷題記錄
工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...