我的答案(C++)
其中需要注意的点是:
nums的长度用.size()取出
还有,最后要return{}一下,不然会报错,报错是报//*这一行的错,报错内容是:
control reaches end of non-void function [-Werror=return type]
同时,return()也是不行的,会报错:
expected primary-expression before ')' take
return {}和return{}都是可以的。return后面不加东西也是会报错的。
对这一点我查过C++的书,书上是这样描述的:
如果是void,可以不写return,也可以写return(后面不加东西)。
如果不是void的话,如果定义函数时没定义类型,那么缺省值是int,如果定义了类型,那么返回定义的类型。
读到这里发现有没有()都没提,那应该是按需使用(),但是{}也没提。这里臆测应该是因为定义函数类型为vector,所以要用{}。感叹一下,书里的内容真的很有限,关键的地方书上都没有!
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int i;
int j;
for(i=0;i<(nums.size()-1);i++)
{
for(j=i+1;j<nums.size();j++)
{
if((nums[i]+nums[j])==target)
{
return{i,j};
}
}
}
return{};
}//*
};