天天看點

Python LeetCode - 1. Two Sum

##Question

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution.

Example: 

Given nums = [2, 7, 11, 15], target = 9, 

Because nums[0] + nums[1] = 2 + 7 = 9, 

return [0, 1].

##Solution

1. 周遊數組

時間複雜度O(n^2)

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for i in range(len(nums)-1):
            for j in range(i+1,len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
           
Python LeetCode - 1. Two Sum

2. 

時間複雜度O(n)

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for i in range(len(nums)-1):
            diff = target - nums[i]
            if diff in nums[i+1:]:
                return [i, nums[i+1:].index(diff)+i+1]