题目内容
给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
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.
https://leetcode-cn.com/problems/two-sum/
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
题目思路
这道题目的想法就是在选定数组中的一个数字之后,测试目标数字减去选定数字的结果是否也在数组中。有的话就返回即可。这里的坑在于可能会有重复的。所以在返回之前可以把选定的数字给改了,避免出现两个数字都相同的情况导致位置重复。
程序代码
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in range(len(nums)):
tmp1=target-nums[i]
tmp2,nums[i]=nums[i],'*'
if tmp1 in nums:
return [i,nums.index(tmp1)]