بهترين وقت اسٽاڪ II ليٽ ڪوڊ حل خريد ۽ وڪرو ڪرڻ


تڪليف جي سطح آسان
بار بار پڇڻ ۾ Amazon ڊي شاه ڪريو Microsoft جي مارگن Stanley سليمان وساڻ
ڪيريو لالچ

مسئلي جو بيان

مسئلي ۾ "اسٽاڪ II خريد ڪرڻ ۽ وڪرو ڪرڻ جو بهترين وقت ،" اسان کي هڪ صف ڏني وئي آهي جتي صف ۾ هر عنصر ان ڏينهن ڏنل اسٽاڪ جي قيمت تي مشتمل آهي.

جي تعريف برو شيئر جو هڪ حصو خريد ڪري رهيو آهي ۽ شيئر ڪري رهيو آهي.

اسان جو ڪم هيٺين پابندين تحت وڌ کان وڌ منافعو ڳولڻ آهي.

  1. اسان نئون اسٽاڪ خريد نٿا ڪري سگهون جيڪڏهن اسان اڳوڻي اسٽاڪ وڪرو نه ڪيو آهي. اھو ھڪڙي وقت تي آھي اسان وٽ گھڻو ڪري ھڪڙو اسٽاڪ ٿي سگھي ٿو.
  2. اسان جيترو معاملو ڪري سگهون ٿا جيئن اسان چاهيون ٿا.

مثال

prices = [7,1,5,3,6,4]
7

وضاحت: وڌ کان وڌ منافعو جيڪو حاصل ڪري سگھجي ٿو 7. ھيٺ ڏنل آھي ٽرانزيڪشن جو تفصيل:

پهريون ڏينهن: آرام

ٻئي ڏينهن: خريد ڪيو

ٽيون ڏينهن: وڪرو

چوٿون ڏينهن: خريد ڪيو

پنجون ڏينهن: وڪرو

ڇهين ڏينهن: آرام ڪريو

اسٽاڪ II ليٽ ڪوڊ حل ۽ خريد ڪرڻ لاء بهترين وقت جي ويجهو

جيئن ته اسان وٽ ٽرانزيڪشن جي تعداد تي ڪا پابندي ناهي ، تنهنڪري اسان a لالچي الگورتھم هتي. تنهن ڪري هر دفعي اسان گهٽ ۾ گهٽ قيمت تي اسٽاڪ خريد ڪنداسين ۽ ان کي وڌ کان وڌ قيمت تي وڪرو ڪنداسين. اسان انهي کي مختصر ڪري سگهون ٿا ، هر منٽ تي اسان هڪ اسٽاڪ خريد ڪنداسين ۽ هر وڌ ۾ وڌ ، اسان هڪ اسٽاڪ وڪرو ڪنداسين. اها هيٺ ڏنل شڪل ۾ بيان ڪئي وئي آهي. اهو اسٽاڪ جي قيمت ۽ ڏينهن جي وچ ۾ پلاٽ آهي. اسٽاڪ II جو خريد ۽ وڪرو ڪرڻ جي لاءِ بهترين وقت جي ليٽ ڪوڊ حل

جيڪڏهن اسان مشاهدو ڪنداسين ته هڪ ميڪيمما ٺهي رهي آهي جڏهن نن valuesا نن minا حصا گهٽ ۾ گهٽ شامل ٿين ٿا. تنهن ڪري هر گهٽ ۾ گهٽ ٽائم کي گهٽ ۾ گهٽ لڪائڻ ۽ وڌ کان وڌ نفعو وڌائڻ جي حساب سان ، اسان سڌي طرح انهن قيمتن کي پنهنجي منافعي ۾ شامل ڪري سگھون ٿا جن جي لاءِ اسان هڪ مثبت foundانچو ڳولي لڌو جيڪي قيمتون آهن [i]> قيمتون [i-1]. اهڙي سڀني قدرن جو اضافي اسان کي وڌ ۾ وڌ منافعو ڏيندو

اسٽاڪ II جو خريد ۽ وڪرو ڪرڻ جي لاءِ بهترين وقت جي ليٽ ڪوڊ حل

تي عملدرآمد

اسٽاڪ II جي خريد ۽ فروخت لاءِ بهترين وقت لاءِ C ++ ڪوڊ

#include <bits/stdc++.h> 
using namespace std; 
    int maxProfit(vector<int>& prices) {
        int n=prices.size();
        int ans = 0;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
int main() 
{ 
 vector<int> arr = { 7,1,5,3,6,4 }; 
 cout<<maxProfit(arr)<<endl; 
 return 0;
}
7

اسٽاڪ II جي خريد ۽ فروخت لاءِ بهترين وقت لاءِ جاوا ڪوڊ

import java.util.Arrays; 
public class Tutorialcup {
     public static int maxProfit(int[] prices) {
        int ans = 0;
        int n=prices.length;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
  public static void main(String[] args) {
    int [] arr = {7,1,5,3,6,4}; 
    int ans=  maxProfit(arr);
    System.out.println(ans);
  }
}
7

اسٽاڪ II ليٽ ڪوڊ حل خريد ۽ وڪرو ڪرڻ جي بهترين وقت جي پيچيدگي جو تجزيو

وقت جي پيچيدگي

مٿي ڏنل ڪوڊ جي پيچيدگي آهي اي (ن) ڇاڪاڻ ته اسان رڳو هڪ ڀيرو قيمت جي آرڊر کيڏي رهيا آهيون. هتي اين قيمت جي ڊيگهه جي ڊيگهه آهي.

خلائي پيچيدگي

مٿي ڏنل ڪوڊ جي خلائي پيچيدگي آهي اي (1) ڇاڪاڻ ته اسان جواب کي ذخيرو ڪرڻ جي لاءِ صرف ياداشت استعمال ڪندا آهيون.

حوالا