力扣题目:
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
代码:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
a=[];
#a=list();
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if(nums[i]+nums[j]==target):
a.append(i);
a.append(j);
return a;
nums = [2,7,11,15];
target = 9;
a=Solution();
b=a.twoSum(nums,target);
print(b);
易错点:
1.不要写成a=a.append(i).因为append没有返回值,所以要直接写a.append即可以改变a的值
2.对于函数定义,当没有类调用的情况下,这种函数定义:def twoSum(nums,target)是可以的,但是在类调用的时候,函数定义需要改为:def twoSum(self,nums,target)。是因为对象调用方法时,实际上是通过类调用的,对于a=Solution()与a.twoSum(nums,target)实际上是这样调用的:Solution.twoSum(a,nums,target),python隐含地把a传进方法替代了self,就成了绑定的方法,就可以执行了。
3.记得函数中最后要return a