0
点赞
收藏
分享

微信扫一扫

LeetCode ERROR: runtime error: reference binding to null pointer of type 'value_type' (stl_vector.h)

在觉 2021-09-25 阅读 66
随笔

最近刷LeetCode的时候碰到了这个错误:



代码如下:

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0;
        int buy = prices[0];

        if(prices.size()<1){
            return 0;
        }

        for (int i = 1; i<prices.size(); i++) {
            buy = min(buy, prices[i]);
            res = max(res, prices[i] - buy);
        }
        return res;
    }
};

后来参考了这个帖子,才知道这是个数组越界错误。错误很低级,只需要把特殊情况的if判断放在初始化之前即可。因为测试用例为[]时,对buy的赋值就会产生数组越界。

class Solution {
public:
    int maxProfit(vector<int>& prices) {

        //特殊情况
        if(prices.size()<=1){
            return 0;
        }

        int res = 0;
        int buy = prices[0];
        
        for (int i = 1; i<prices.size(); i++) {
            buy = min(buy, prices[i]);
            res = max(res, prices[i] - buy);
        }
        return res;
    }
};
举报

相关推荐

0 条评论