1. Two Sum

Description:

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, and you may not use the same element twice.

给定一行整形数组,和一个唯一的目标数字,使数组里面的两个数(每个数字仅能使用一次)相加等于目标数字。

Example:

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

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

  

Solutions:

 

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        for onenum in nums:
            other = target - onenum  # 根据前面两个数的相加得到这个结果,那么相减则得到另外一个数的值
            f = nums.index(onenum)
            if other in nums[f+1:]:
                return [f,nums[f+1:].index(other)+f+1]

另外的做法本质相同:

class Solution(object):
    def twoSum(self, nums, target):
  
        for i in range(len(nums)):
            temp = target - nums[i]
            if temp in nums and i != nums.index(temp): # 加入了次数限制条件
                return [i, nums.index(temp)]

原文地址:https://www.cnblogs.com/qianyuesheng/p/9063169.html