C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++のクールダウンで株式を売買するのに最適な時期


i番目の要素がi日の特定の株式の価格である配列があるとします。最大の利益を見つけるためのアルゴリズムを設計する必要があります。必要な数のトランザクションを完了することができます(したがって、1つを購入し、1株の株式を複数回販売します)。しかし、私たちはこれらのルールに従わなければなりません-

  • 同時に複数の取引を行うことはできません(したがって、再度購入する前に株式を売却する必要があります)。
  • 株式を売却した後、翌日に株式を購入することはできません。 (1日クールダウン)

入力が[1,2,3,0,2]の場合、出力は3になり、シーケンスは[購入、販売、クールダウン、購入、販売]

のようになります。

これを解決するには、次の手順に従います-

  • endWithSell:=0、endWithBuy:=-ve infinity、prevBuy:=0およびprevSell:=0
  • for i:=0から指定された配列のサイズ
    • prevBuy:=endWithBuy
    • endWithBuy:=endWithBuyとprevSellの最大値– Arr [i]
    • prevSell:=endWithSell
    • endWithSell:=endWithSellおよびprevBuy+Arr[i]の最大値
  • return endWithSell

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int maxProfit(vector<int>& p) {
      int endWithSell = 0;
      int endWithBuy = INT_MIN;
      int prevBuy =0, prevSell = 0;
      for(int i =0;i<p.size();i++){
         prevBuy = endWithBuy;
         endWithBuy = max(endWithBuy,prevSell - p[i]);
         prevSell = endWithSell;
         endWithSell = max(endWithSell, prevBuy + p[i]);
      }
      return endWithSell;
   }
};
main(){
   Solution ob;
   vector<int> v = {1,2,3,0,2};
   cout << (ob.maxProfit(v));
}

入力

[1,2,3,0,2]

出力

3

  1. 売買するCraigslistのような4つの最高のアプリ

    何年もの間、買い手と売り手はCraigslistに群がっていました。ただし、Craigslistはデジタル時代に追いついていない。ウェブサイトは古く、Craigslistアプリはバグがあります。言うまでもなく、Craigslistは詐欺のトップの場所の1つであり、このリスクを軽減するために行われたことはあまりありません。 Craigslistにはボットもたくさんあり、売買をさらに難しくする可能性があります。幸いなことに、Craigslistのように、代替手段であるだけでなく、より優れたオプションである優れたアプリがいくつかあります。 ローカルで売買したい場合は、これらのCraigslist

  2. 2022 年に売買すべき Craigslist のような 10 のサイト

    Craigslist のようなウェブサイトは、Craigslist がプラットフォームから個人広告セクションを削除し、他の広告を開いているため、大きな需要があります. Craigslist は、クリックするだけで、仕事、必要なアイテム、住宅、コミュニティ サービスなど、必要なものを見つけるのに最適な選択肢です。 それでも、同じ古いインターフェースと、個人的な関係に基づいて広告を見つけることができないため、人々は Craigslist の代替品を探すようになりました.これが、不足している懸念をおそらく解決する Craigslist のような最高のサイトを提供するためにここにいる理由です. A