C++/001. Two Sum.cpp 编译出错
HiSunzhenliang opened this issue · comments
目测是没看出问题的不知道为什么编译通不过
原解
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> v(2);
for(int i = 0; i < nums.size(); i++) {
for(int j = i + 1; j < nums.size(); j++) {
if(nums[i] + nums[j] == target) {
v[0] = i;
v[1] = j;
return v;
}
}
}
}
};
solution.cpp: In member function twoSum
Line 14: Char 5: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: some warnings being treated as errors
修改后可以通过
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> v(2);
for(int i = 0; i < nums.size(); i++) {
for(int j = i + 1; j < nums.size(); j++) {
if(nums[i] + nums[j] == target) {
v[0] = i;
v[1] = j;
//return v;
}
}
}
return v;
}
};
感谢指正,已改,是自己当初做题目的时候疏忽了
因为函数是有返回值的,且为vector<int>
类型,但是如果把return v
写在for循环里面是有for循环不会被进入的风险的,return v
语句应该放在最外层保证该函数一定能有返回值~