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