def twoSum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i in nums:
#print(f'i的值{i}与索引值{nums.index(i)}')用这句
for j in nums:
#print(f'j的值{j}与索引值{nums.index(j)}')还有这句输出每次循环的值我才发现了为什么一开始总是返回None
if (target == i + j) and ((nums.index(i)) !=(nums.index(j))):
return
print(twoSum([3,3],6))在这里插入代码片
这是我最初的想法,直接for for循环再用索引做,没想到遇到两个相同值时就不行了,因为index函数在列表中存在相同元素时仅仅会返回第一个,因而不满足 and 的第二个条件,返回None。
而且一开始想法很可笑,不知道可以直接return【】列表,竟然用 append 函数添加数到列表,再返回列表。
乖乖用 参考官方的写法
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
n = len(nums)
for i in range(n):
for j in range(i + 1, n):#从i+1开始避免重复
if nums[i] + nums[j] == target:
return [i, j]
return []
用len和range来做