1. 程式人生 > >Leetcode 1.兩數之和

Leetcode 1.兩數之和

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 in
nums: 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.兩數之和