题目:假设你有一个数组,其中的第 i 个元素代表给定的第 i 天的股票价格。
如果你被允许至多完成一个交易(如,买一和卖一股票),设计一个算法找出最大的利润。
解决思路:首先赋首元素的值给最小,依次向后计算利润,每次与最大值比较并保存新的最大值和新的最小值。
int MaxProfit (vector
{
int *min = &prices[0];
int *max = min;
auto len = prices.size ();
for (decltype(len) i = 1; i
max = &prices[i];
if (prices[i] <* min)
min &#61; &prices[i];
}
return *max - *min;
}
int main ()
{
vector
prices.push_back (i);
cout <<"The max profit is: " <
}