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]

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]
发布了28 篇原创文章 · 获赞 5 · 访问量 4079

猜你喜欢

转载自blog.csdn.net/authorized_keys/article/details/83751481