Two Sum--leecode刷题总结

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

#方法一
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            res=target-nums[i]
            if res in nums and nums.index(res)!=i:
                return i,nums.index(res)

 之所以用两个判断条件是因为测试例子当中有重复数组,当[3,3]6这样的例子出现时,如果没有第二个判断,那么就会把第一个元素的下标返回两次

方法二

       
        # for i in  range(len(nums)):
        #     for j in range(i+1,len(nums)):
        #         if nums[i]+nums[j]==target:
        #             return i,j

 两个for循环,天然的会避免重复取一个元素。

 别人的答案就不贴了,leecode有中文网站。

你可能感兴趣的:(力扣,python)