ok問題は配列に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を含めたアウトしてそれを解決することができるようにしたい:次のコードは、私はそれを解決する方法です。その可能性のある誰かが売り買いでそれ以上のものを失う可能性があります。何かご意見は?
代わりに 'int max_profit = std :: numeric_limits :: lowest();'を使うことができます。 –
ArchbishopOfBanterbury
どのような考えですか?小さい番号を使用してください。次に、それがあなたにどのような用途に使われる必要があるかについて考えてみましょう。 – juanchopanza
最初のデータセット要素から初期値を引きます。 'int max_profit = prices [1] - prices [0];'後でそれを奪うのでなければ、もしあれば、再びそれをして、 'N> = 2'と仮定してください。 – WhozCraig