Leetcode 1.兩數之和
阿新 • • 發佈:2018-06-14
get 假設 運行 個數 不能 bsp 代碼 運行時間 結果
給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。
示例:
給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
註:要考慮i,j不相等,即兩元素的下標不能相等
- 一開始的代碼
一開始想的是找到一個在nums中和item相加等於target的數,再返回其下標,結果運行時間太長了
for i,item in enumerate(nums): for j innums: if nums.index(j)!=i: x=j+item if x==target: return i,nums.index(j)
- 改進代碼
後來發現,只要在nums中找到target-item即可。。。,減少了遍歷的時間
for i, item in enumerate(nums): if target - item in nums and nums.index(target - item) != i:return i, nums.index(target - item)
Leetcode 1.兩數之和