两数之和
题目描述:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
解题思路:
最简单的版本,两次遍历
class Solution: def twoSum(self, nums, target): for x in range(len(nums)): for y in range(x+1,len(nums)): if nums[y] == target-nums[x]: return x,y break else: continue
换个思路:
我们可以把数组中元素的值和下标分别提取出来,判断对应的值是否在数组中,但要注意的是最后要有一个判断,当两个元素相等时,防止取出来的下标是同一个
class Solution: def twoSum(self, nums, target): for i,num in enumerate(nums): if target-num in nums: if nums.index(target-num) != i: return i,nums.index(target-num)
人生苦短,何不用python