leetcode上提交代码问题

来源:3-6 对撞指针 Two Sum II - Input Array is Sorted

算法请爱我emmm

2019-08-07

class Solution {

public:
    vector<int> twoSum(vector<int>& numbers, int target) {

        assert(numbers.size() >= 2);
        // assert(isSorted(numbers));

        int l = 0, r = numbers.size() - 1;
        while(l < r){

            if(numbers[l] + numbers[r] == target){
                int res[2] = {l+1, r+1};
                return vector<int>(res, res+2); //1)--这里不是已经有一个返回值了吗
            }
            else if(numbers[l] + numbers[r] < target)
                l ++;
            else // numbers[l] + numbers[r] > target
                r --;
        }

       // throw invalid_argument("the input has no solution");
    return vector<int>{-1,-1};//2)--为什么在leetcode上提交代码没有这一行就会报错??
    }
};
  1. 老师可以答疑注释的地方吗?
写回答

1回答

liuyubobobo

2019-08-08

1)的地方确实有返回值,但是他在一个if条件中,不一定会走到啊。所以需要2)


比如,设计一个函数,判断传入的一个数字是正还是负:

// 判断传入的 x 是非负(大于等于零)还是负(小于零)。正则返回 true,负则返回 false

bool sign(int x){
    if(x >= 0)
        return true; // 1
    return false;    // 2
}


理解一下这两个return,为什么有1的return,还需要2的return?


继续加油!:)

0
3
算法请爱我emmm
回复
liuyubobobo
get it!
2019-08-08
共3条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程