题外话:开始刷LeetCode的题,以提高一下下编程能力,in Python,今后会常用的语言。
描述:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
暴力解法?涉及到list的查找方法,为了保证相同的元素不出错,例如3+3 = 6,采用list切片,在后续list中查找
1. num in list 判断list中是否存在num, 返回值 True False
2. list.index(num) 返回第一次出现num的下标,当有重复元素时,第二个返回值 采用后续list下标+当前下标
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
size = len(nums)
res = []
for idx in range(size):
tmp = target - nums[idx]
if tmp in nums[(idx+1):]:
res = [idx,nums[(idx+1):].index(tmp)+idx+1]
break
else:
idx = idx+1
return res