Interview Question | Best Time To Buy and Sell Stock | Array | C++

Kartikeya Mishra
4 min readNov 15, 2023

--

Interview Question | Best Time To Buy and Sell Stock | Array | C++
class Solution {
public:
int maxProfit(vector<int>& prices) {
int min_price = prices[0];
int maxprof = 0;

for(int i=1;i<prices.size();i++){
maxprof = max(maxprof,prices[i]-min_price);
min_price = min(prices[i],min_price);
}

return maxprof;
}
};

English :

This code defines a class named Solution with a public member function maxProfit that takes a vector of integers prices as input and returns an integer representing the maximum profit that can be obtained by buying and selling stocks.

Step-by-step breakdown :

Class Definition:

  • class Solution {: This line declares a class named Solution.
  • public:: This keyword indicates the accessibility of members within the class. In this case, public means that the maxProfit member function is accessible outside the class.
  • int maxProfit(vector<int>& prices);: This line declares a public member function named maxProfit that takes a reference to a vector of integers prices as input and returns an integer representing the maximum profit.

Maximum Profit Calculation:

  • int min_price = prices[0];: This line initializes a variable min_price to the first element of the prices vector.
  • int maxprof = 0;: This line initializes a variable maxprof to 0, which will store the maximum profit found so far.
  • for(int i=1;i<prices.size();i++){: This loop iterates through the remaining elements of the prices vector, starting from the second element (i=1).
  • maxprof = max(maxprof,prices[i]-min_price);: This line updates the maxprof variable by taking the maximum of its current value and the difference between the current price (prices[i]) and the minimum price seen so far (min_price).
  • min_price = min(prices[i],min_price);: This line updates the min_price variable by taking the minimum of its current value and the current price (prices[i]).
  • return maxprof;: This line returns the final value of maxprof, which represents the maximum profit that can be obtained by buying and selling stocks.

Hindi :

यह कोड Solution नामक एक वर्ग को परिभाषित करता है, जिसमें एक सार्वजनिक सदस्य फ़ंक्शन maxProfit होता है जो पूर्णांकों के एक वेक्टर prices को इनपुट के रूप में लेता है और एक पूर्णांक देता है जो स्टॉक खरीदने और बेचने से प्राप्त अधिकतम लाभ का प्रतिनिधित्व करता है।

चरण-दर-चरण विवरण:

क्लास परिभाषा:

class Solution {: यह लाइन Solution नामक एक वर्ग को घोषित करती है। public:: यह कीवर्ड कक्षा के भीतर सदस्यों की पहुंच को इंगित करता है। इस मामले में, public का अर्थ है कि maxProfit सदस्य फ़ंक्शन वर्ग के बाहर से सुलभ है। int maxProfit(vector<int>& prices);: यह लाइन maxProfit नामक एक सार्वजनिक सदस्य फ़ंक्शन घोषित करती है जो पूर्णांकों के एक वेक्टर prices के संदर्भ को इनपुट के रूप में लेता है और एक पूर्णांक लौटाता है जो अधिकतम लाभ का प्रतिनिधित्व करता है।

अधिकतम लाभ गणना:

int min_price = prices[0];: यह लाइन min_price वेरिएबल को prices वेक्टर के पहले तत्व पर इनिशियलाइज़ करती है। int maxprof = 0;: यह लाइन maxprof वेरिएबल को 0 पर इनिशियलाइज़ करती है, जो अब तक पाए गए अधिकतम लाभ को संग्रहीत करेगा।

for(int i=1;i<prices.size();i++){: यह लूप prices वेक्टर के शेष तत्वों के माध्यम से पुनरावृत्त करता है, दूसरे तत्व (i=1) से शुरू होता है। maxprof = max(maxprof,prices[i]-min_price);: यह लाइन maxprof वेरिएबल को उसके वर्तमान मान और वर्तमान कीमत (prices[i]) और अब तक देखी गई न्यूनतम कीमत (min_price) के बीच के अंतर के अधिकतम को लेकर अपडेट करती है। min_price = min(prices[i],min_price);: यह लाइन min_price वेरिएबल को उसके वर्तमान मान और वर्तमान कीमत (prices[i]) के न्यूनतम को लेकर अपडेट करती है।

return maxprof;: यह लाइन maxprof का अंतिम मान लौटाती है, जो स्टॉक खरीदने और बेचने से प्राप्त अधिकतम लाभ का प्रतिनिधित्व करता है।”

Hinglish :

class Solution { : Is line mein ek class Solution declare hoti hai.

public:: Yeh keyword members ki accessibility ko darust karta hai class ke andar. Is mamle mein, public yeh batata hai ki maxProfit member function class ke bahar accessible hai.

int maxProfit(vector<int>& prices);: Is line mein ek public member function maxProfit declare hoti hai jo ek vector of integers prices ka reference input leta hai aur ek integer ko represent karta hai jo kharidne aur bechne se milne wale adhiktam munafa ko darust karta hai.

int min_price = prices[0];: Is line mein ek variable min_price ko prices vector ke pehle element se initialize kiya jata hai.

int maxprof = 0;: Is line mein ek variable maxprof ko 0 se initialize kiya jata hai, jo ab tak paye gaye adhiktam munafa ko store karega.

for(int i=1;i<prices.size();i++){: Yeh loop prices vector ke baaki ke elements mein chalta hai, doosre element se shuru hota hai (i=1).

maxprof = max(maxprof,prices[i]-min_price);: Is line mein maxprof variable ko update kiya jata hai uske vartaman value aur vartaman price (prices[i]) aur ab tak dekhe gaye minimum price (min_price) ke beech ka antar lekar.

min_price = min(prices[i],min_price);: Is line mein min_price variable ko update kiya jata hai uske vartaman value aur vartaman price (prices[i]) ke minimum ko lekar.

return maxprof; : Is line mein maxprof ke antim mool ko return kiya jata hai, jo stocks ko kharidne aur bechne se milne wale adhiktam munafa ko darust karta hai.

--

--

Kartikeya Mishra
Kartikeya Mishra

Written by Kartikeya Mishra

Computer science engineer nomad exploring digital world. Learning and teaching while having fun.

No responses yet