liuchuo / LeetCode

🍡 LeetCode Online Judge刷题题解(Java/C++/Python/Ruby/Swift)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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语句应该放在最外层保证该函数一定能有返回值~