运行时错误:引用绑定到类型为'value_type'(stl_vector.h)的空指针

时间:2019-09-29 21:09:57

标签: c++

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


        for(int i=1;i<prices.size();i++)
        {
            int diff=0;
           if(prices[i]>smallest)    
               diff = prices[i]-smallest;
           else
               smallest = prices[i];
          if(diff > profit)
              profit=diff;
        }
        return profit;
    }};
  

问题)假设您有一个数组,第i个元素是价格   第i天给定股票的价格。

     

如果只允许您完成最多一笔交易(即,   买入并卖出一股股票),设计一种算法来查找   最大的利润。

     

请注意,您不能在买股票之前卖出股票。

     

示例1:

     

输入:[7,1,5,3,6,4]输出:5说明:在第2天购买(价格= 1)   并在第5天卖出(价格= 6),利润= 6-1 = 5。                不是7-1 = 6,因为销售价格必须大于购买价格。

     

示例2:

     

输入:[7,6,4,3,1]输出:0说明:在这种情况下,没有事务   完成,即最大利润= 0。

我遇到了错误:

reference binding to null pointer of type 'value_type' (stl_vector.h)

1 个答案:

答案 0 :(得分:0)

因此,其中一个测试用例将空向量作为输入。因此,当我尝试在第一行中访问prices [0]时,抛出了错误。因此,我添加了一个check-> if(prices.empty())返回0;答案是正确的。