注意返回的是索引,不是值
C++
非空函数要在所有控制路径中都要有返回值
题目模板返回的vector数组
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
if(nums.size()<2)
return vector<int>(); //创建一个空的vector数组
vector<int> result(2,0);
//注意边界条件
for(int i=0;i<nums.size()-1;++i){
for(int j=i+1;j<nums.size();++j)
if(nums[i]+nums[j]==target){
result[0]=i;
result[1]=j;
return result;
}
}
return vector<int>(); //非空函数要在所有控制路径中都有返回值
}
};
Python3
nums: List[int], target: int 是为了指明传入参数的类型
-> List[int] 是指明函数的返回类型是List(这些可写可不写)
enumerate函数返回索引和列表值,但是切片后的索引又从0开始,所以原索引为j+i+1
Python没有return时默认返回none,python懒惰即美德
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
result=[]
if len(nums)<2:
return []
for i,x in enumerate(nums):
for j,y in enumerate(nums[i+1:]):
if x+y==target:
result.append(i)
result.append(j+i+1)
return result