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
留言
張貼留言