بهترین زمان برای خرید و فروش سهام

  • 2021-11-6

با توجه به قیمت های مجموعه ای [] از طول نفر, به نمایندگی از قیمت سهام در روزهای مختلف, وظیفه این است برای پیدا کردن حداکثر سود ممکن برای خرید و فروش سهام در روزهای مختلف با استفاده از معاملات که حداکثر یک معامله مجاز است.

توجه: سهام باید قبل از فروش خریداری شود.

مثالها:

ورودی: قیمت[] = خروجی: 5 توضیح: پایین ترین قیمت از سهام است در 2 day روز, به عنوان مثال. شروع از روز 2 بالاترین قیمت سهام در روز 5 یعنی قیمت = 6 شاهد است. از این رو, حداکثر سود ممکن = 6 – 1 = 5.

ورودی: قیمت [] = خروجی: 0 توضیح: از مجموعه در حال کاهش است, هیچ راه ممکن وجود دارد برای حل مشکل.

رویکرد 1: این مشکل را می توان با استفاده از رویکرد حریص حل کرد. برای به حداکثر رساندن سود باید هزینه خرید را به حداقل برسانیم و باید با حداکثر قیمت بفروشیم. برای اجرای ایده فوق مراحل زیر را دنبال کنید:

  • اعلام متغیر خرید برای ذخیره هزینه خرید و حداکثر سود برای ذخیره حداکثر سود.
  • متغیر خرید را به اولین عنصر مجموعه قیمت ها مقداردهی اولیه کنید .
  • تکرار بیش از قیمت مجموعه و بررسی کنید که قیمت فعلی حداقل است یا نه.
    • اگر قیمت فعلی حداقل است پس در این روز اول خرید کنید.
    • اگر قیمت فعلی بیشتر از خرید قبلی است پس از خرید سود ببرید و حداکثر سود را به حداکثر برسانید.

    در زیر اجرای رویکرد فوق است:

    پایتون 3

    جاوا اسکریپت

    خروجی :

    پیچیدگی زمان: ای (ن). جایی که نفر اندازه قیمت مجموعه است. فضای کمکی: ای(1). ما از فضای اضافی استفاده نمی کنیم.

    Approach 2: The given problem can be solved based on the idea of finding the maximum difference between two array elements with smaller number occurring before the larger number. Therefore, this problem can be reduced to finding max⁡(prices[j]−prices[i]) for every pair of indices i and j, such that j>i .

    در زیر اجرای رویکرد فوق است:

    پایتون 3

    جاوا اسکریپت

    پیچیدگی زمانی: ای(ن) جایی که ن طول مجموعه داده شده است. فضای کمکی: ای (ن)

    با توجه به قیمت مجموعه ای [] طول نفر, به نمایندگی از قیمت سهام در روزهای مختلف, وظیفه این است برای پیدا کردن حداکثر سود ممکن برای خرید و فروش سهام در روزهای مختلف با استفاده از معاملات که هر تعداد از معاملات مجاز.

    مثالها:

    ورودی: قیمت [] = خروجی: 7 توضیح: خرید در 2 day روز. قیمت = 1. فروش در 3 روز جاده. قیمت = 5. بنابراین سود = 5-1 = 4. خرید در روز 4. قیمت = 3. فروش در 5 روز هفتم. قیمت = 6. بنابراین سود = 4 + (6 – 3) = 7.

    ورودی: قیمت = خروجی: 4 توضیح: خرید در 1 روز خیابان. قیمت = 1. فروش در روز 5. قیمت = 5. بنابراین سود = 5-1 = 4.

    رویکرد: ایده این است که برای حفظ یک مقدار بولی است که نشان دهنده اگر هر گونه خرید فعلی در حال انجام است یا نه وجود دارد. اگر بله, سپس در وضعیت فعلی, سهام را می توان به حداکثر رساندن سود و یا حرکت به قیمت بعدی بدون فروش سهام فروخته. در غیر این صورت, اگر هیچ معامله اتفاق می افتد, سهام فعلی را می توان خرید و یا حرکت به قیمت بعدی بدون خرید .

    در زیر اجرای رویکرد فوق است:

    پیچیدگی زمانی: ای(ن) جایی که ن طول مجموعه داده شده است. فضای کمکی: ای (ن)

    روش 2: - راه حل بهینه شده

    یک راه دیگر برای حل مشکل این است که فکر می کنم از وضعیت زمانی که ما خرید سهام در ابتدای بالادست در نمودار سهام و فروش در بالاترین نقطه که خط بالادست نمودار. ما فقط باید مجموع تمام بالادستی های موجود در نمودار را محاسبه کنیم.

    در زیر اجرای رویکرد فوق است:-

    پایتون 3

    جاوا اسکریپت

    پیچیدگی زمانی: ای(ن) جایی که ن طول مجموعه داده شده است. فضای کمکی: ای(1)

    مشکل: با توجه به قیمت مجموعه ای [] طول نفر که نشان دهنده قیمت سهام در روزهای مختلف است. وظیفه یافتن حداکثر سود ممکن برای خرید و فروش سهام در روزهای مختلف با استفاده از تراکنش هایی است که حداکثر دو تراکنش مجاز است.

    توجه: سهام باید قبل از فروش خریداری شود.

    Input: prices[] = Output: 6 Explanation: Buy on Day 4 and Sell at Day 6 => Profit = 3 0 = 3 Buy on Day 7 and Sell at Day 8 =>سود = 4 1 = 3 بنابراین کل سود = 3 + 3 = 6

    Input: prices[] = Output: 4 Explanation: Buy on Day 1 and sell at Day 6 =>سود = 5 1 = 4 بنابراین کل سود = 4

    رویکرد 1: با پیروی از رویکرد فوق می توان مشکل را حل کرد. حال اگر تعداد تراکنش ها برابر با 2 باشد سود فعلی می تواند پاسخ دلخواه باشد. به طور مشابه, سعی کنید از تمام پاسخ های ممکن را با به خاطر سپردن به جدول نفوذ دو.

    در زیر اجرای رویکرد فوق است:

    پیچیدگی زمانی: جایی که ن طول مجموعه داده شده است. فضای کمکی: ای (ن)

    رویکرد 2: فضا بهینه شده است

    • ما در اینجا 4 متغیر داریم تی1هزینه, تی2هزینه, تی1انتفاعی, و تی2انتفاعی.
    • این نشان دهنده حداقل هزینه در هر معامله و حداکثر سود ما می توانیم از هر معامله هزینه تی1 و سود تی1 بسیار ساده است.
    • ما باید سودی را که از اولین معامله کسب می کنیم دوباره سرمایه گذاری کنیم. قیمت سهام دوم منهای حداکثر سود ما از معامله اول حداقل هزینه معامله دوم است.

    پایتون 3

    جاوا اسکریپت

    پیچیدگی زمانی: جایی که ن طول مجموعه داده شده است. فضای کمکی: ای(1)

    مشکل: با توجه به قیمت مجموعه ای [] طول نفر که نشان دهنده قیمت سهام در روزهای مختلف است. وظیفه این است که حداکثر سود ممکن را برای خرید و فروش سهام در روزهای مختلف با استفاده از تراکنش هایی که حداکثر معاملات ک مجاز است پیدا کنید.

    توجه: سهام باید قبل از فروش خریداری شود.

    مثالها:

    ورودی: ک = 2, قیمت[] = خروجی: 2 توضیح: خرید در روز 1 زمانی که قیمت 2 و فروش در روز 2 زمانی که قیمت 4. بنابراین سود = 4-2 = 2.

    ورودی: ک = 2, قیمت[] = خروجی: 7 توضیح: خرید در روز 2 زمانی که قیمت 2 و فروش در روز 3 زمانی که قیمت 6. بنابراین سود = 6-2 = 4. خرید در روز 5 زمانی که قیمت 0 و فروش در روز 6 زمانی که قیمت 3. از این رو, سود = 3-0 = 3. بنابراین کل سود = 4 + 3 = 7

    رویکرد: ایده این است که تعداد معاملات انجام شده را حفظ کرده و تعداد معامله را با ک مقایسه کنید . اگر کمتر از ک سپس خرید و فروش سهام. در غیر این صورت سود فعلی می تواند حداکثر سود باشد.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.