确定问题在数组中给出了5个值。它们代表您买入和卖出股票的价值。你不能卖,直到你买。所以第一个值是买。你需要找到你获得的最大或最高利润,即使它是负数(因此-1000的利润超过-10000)。你可以假设适当的主要功能和标题在那里。以下代码是我如何解决它:
int solution(prices[]) {
int N = 5; //assumption is can only buy sell for 5 days so prices = [0-4]
int difference;
int max_profit = -100000000000;
for (int p = 0; p < N; p++)
{
for (int q = p + 1; q < N; q++)
{
difference = prices[q] - prices[p];
if (difference > max_profit)
{
max_profit = difference;
}
}
}
return max_profit;
我希望能够解决它而不必包含max_proft = -100000000000。 bc可能有人可能会因为买卖而失去更多。有什么想法吗?
答案 0 :(得分:1)
如果您想要max_profit
最初可能的最低数量,请使用:
#include <limits>
//...
int max_profit = std::numeric_limits<int>::lowest();
如果有人在股票交易中损失的钱比他们有更多的钱,那么他们就会面临一些严重的问题......
答案 1 :(得分:0)
我希望能够解决它,而不必包括
max_proft= -100000000000
。
嗯,你需要以某种方式获得最低起始价值。那么你对它的关注是什么?
您可以获得的最低起始值是std::numeric_limits<int>::lowest();