Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में कोल्डाउन के साथ स्टॉक खरीदने और बेचने का सबसे अच्छा समय

मान लीजिए कि हमारे पास एक सरणी है जिसके लिए ith तत्व किसी दिए गए स्टॉक की कीमत i दिन है। हमें अधिकतम लाभ ज्ञात करने के लिए एक एल्गोरिथम डिजाइन करना होगा। हम जितने चाहें उतने लेनदेन पूरे कर सकते हैं (इसलिए, एक खरीदें और स्टॉक के एक शेयर को कई बार बेचें)। लेकिन हमें इन नियमों का पालन करना होगा -

  • हम एक ही समय में कई लेन-देन नहीं कर सकते हैं (इसलिए, आपके द्वारा दोबारा खरीदने से पहले हमें स्टॉक बेचना चाहिए)।
  • अपना स्टॉक बेचने के बाद, हम अगले दिन स्टॉक नहीं खरीद सकते। (तो 1 दिन शांत हो जाओ)

यदि इनपुट [1,2,3,0,2] जैसा है, तो आउटपुट 3 होगा, अनुक्रम [खरीदें, बेचें, ठंडा करें, खरीदें, बेचें]

जैसा है

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • endWithSell :=0, endWithBuy :=-ve infinity, prevBuy :=0 और prevSell :=0
  • i के लिए:=0 दिए गए सरणी के आकार के लिए
    • पिछला खरीदें :=endWithBuy
    • endWithBuy :=endWithBuy और prevSell का अधिकतम - Arr[i]
    • prevSell :=endWithSell
    • endWithSell :=endWithSell और prevBuy + Arr[i]
    • की अधिकतम सीमा
  • रिटर्न एंडविथसेल

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

#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. खरीदने और बेचने के लिए क्रेगलिस्ट जैसे 4 बेहतरीन ऐप्स

    वर्षों से, खरीदार और विक्रेता क्रेगलिस्ट में आते रहे हैं। हालाँकि, क्रेगलिस्ट ने डिजिटल युग के साथ तालमेल नहीं रखा है। वेबसाइट पुरानी है और क्रेगलिस्ट ऐप छोटी है। उल्लेख नहीं है कि क्रेगलिस्ट घोटालों के लिए शीर्ष स्थानों में से एक है, और इस जोखिम को कम करने के लिए बहुत कुछ नहीं किया गया है। क्रेगलि

  1. पायथन में स्टॉक खरीदने और बेचने का सबसे अच्छा समय

    मान लीजिए कि हमारे पास एक एरे ए है, यहां ए [i] दिन i पर दिए गए स्टॉक की कीमत का संकेत दे रहा है। हमें अधिकतम लाभ ज्ञात करना है। हम ज़्यादा से ज़्यादा एक लेन-देन पूरा कर सकते हैं. (लेनदेन का मतलब स्टॉक खरीदना और बेचना है)। लेकिन हमें यह ध्यान रखना होगा कि हम एक ही समय में कई लेन-देन नहीं कर सकते हैं।

  1. 10 साइटें जैसे क्रेगलिस्ट 2022 में खरीदने और बेचने के लिए

    क्रेगलिस्ट जैसी वेबसाइटों की भारी मांग है क्योंकि क्रेगलिस्ट ने अन्य विज्ञापनों के लिए खुले रहते हुए अपने मंच से व्यक्तिगत विज्ञापन अनुभाग को हटा दिया है। क्रेगलिस्ट अभी भी नौकरी खोजने के लिए सबसे अच्छा विकल्प है, आवश्यक वस्तुओं, आवास, सामुदायिक सेवा और बहुत कुछ जो आप चाहते हैं, बस एक क्लिक दूर। फि