class Solution(object):
def twoSum(self, nums, target):
list1 = []
for m in range(len(nums)):
n = target - nums[m]
if n in nums:
list1.append(m)
for o in range(len(nums)):
if nums[o] == n:
list1.append(o)
print(list1)
break
a = Solution()
a.twoSum([2,7,11,15],9)
我是把最后两行删了,传进Leetcode的,在pycharm运行有用,第一次写实验,希望大家给我解答哪里有问题
因为你没有检查题目里的另外两种情况(列在后面)
按照你的思路增加了以下代码,你看一下
class Solution(object):
def twoSum(self, nums, target):
list1 = []
for m in range(len(nums)):
n = target - nums[m]
temp = nums.pop(m) # 删除元素,避免检查重复位置
if n in nums:
list1.append(m) # 把元素加回来
nums.insert(m, temp)
for o in range(len(nums)):
if nums[o] == n and o!= m: # 排除两个因子在同一位置
list1.append(o)
print(list1)
break
if len(list1)>1:break # 上面那个break只能跳出内循环,需要再跳出外循环
a = Solution()
a.twoSum([2,7,11,15],9)
a.twoSum([3,2,4],6)
a.twoSum([3,3],6)