Two Sum [LeetCode/Python3/Easy]

題目

給定一個整數數組nums和一個整數target,返回兩個數字的索引,使它們相加等於target。

你可以假設每個輸入都只有一個解,並且你不能使用相同的元素兩次。

你可以以任何順序返回答案。

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Constraints:

  • 2 <= nums.length <= 104
  • 109 <= nums[i] <= 109
  • 109 <= target <= 109
  • 只有一個有效答案存在。

我的解答

時間複雜度O(n^2)

for i in range(len(nums)):
	for j in range(i+1, len(nums)):
		if nums[i]+nums[j] == target:
                return [i,j]

時間複雜度O(n)

for item in nums:
    if (target -item) in nums:
        if item == target-item and nums.count(item)>=2:
            return [nums.index(item), nums.index(target-item, nums.index(item)+1)]
        elif item != target-item:
            return [nums.index(item), nums.index(target-item)]
        else:
            pass

留言

這個網誌中的熱門文章

[理財/記帳]google表單結合iphone捷徑 自製記帳app

[理財/記帳]利用google表單記帳雲端化 - 免費模板下載@ Mimi's learning notes

[Excel]年份週數換算成月份