小白 初入leetcode筆記:兩數之和(python3)
阿新 • • 發佈:2018-12-10
題目:
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
1、range多用作迴圈,range(0,10)返回一個range物件,如想返回一個list,前面加上list轉換;
2、arange是numpy模組中的函式,使用前需要先匯入此模組,arange(3):返回array型別物件。
【注:range()中的步長不能為小數,但是np.arange()中的步長可以為小數
可以使用如下方法將range展開
In [8]: list(range(3))
Out[8]: [0, 1, 2]
本來想著用for進行遍歷,結果超時了,借鑑網上成功程式碼。
發現檢查成員的in語句速度飛快。然後使用index()就可以成功索引該數。
# -*- coding: utf-8 -*- """ Created on Wed Sep 19 14:21:43 2018 @author: ASUS """ class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ # 統計數列長度 n = len(nums) for i in range(n): tem = target - nums[i] if tem in nums: y = nums.index(tem) if i == y: continue else: return i,y else: continue
心累。。。。。
最後發現最快的不是list,是在字典中進行操作,最快的36ms,神仙打架。。