কম্পিউটার

পাইথনে স্টক II কেনা এবং বিক্রি করার সেরা সময়


ধরুন আমাদের একটি অ্যারে আছে, এখানে A[i] দিন i-এ একটি প্রদত্ত স্টকের দাম নির্দেশ করছে। আমাদের সর্বোচ্চ লাভ খুঁজে বের করতে হবে। আমরা যত খুশি তত লেনদেন সম্পন্ন করতে পারি। (লেনদেন মানে স্টক কেনা বেচা)। কিন্তু আমাদের মনে রাখতে হবে যে আমরা একই সময়ে একাধিক লেনদেনে জড়িত নাও হতে পারি। তাই নতুন কেনার আগে আমাদের স্টক বিক্রি করতে হবে।

ধরুন অ্যারেটি A =[7, 1, 5, 3, 6, 4] এর মতো, তাহলে ফলাফলটি 7 হবে। আমরা দেখতে পাচ্ছি, আমরা যদি 2 দিন (সূচী 1) কিনি তবে এটি 1 হিসাবে নিবে। একটি ক্রয় মূল্য। তারপর যদি আমরা ৩য় দিনে বিক্রি করি, লাভ হবে ৫ – ১ =৪। তারপর ৪ দিন কিনুন, আর ৫ দিন বিক্রি করুন, তাহলে লাভ হবে ৬ – ৩ =৩

এটি সমাধান করতে, এই ধাপগুলি অনুসরণ করুন -

  • উত্তর দিন =0
  • 0 থেকে n – 1 রেঞ্জের i এর জন্য (n হল A তে উপাদানের সংখ্যা) −
    • যদি A[i] – A[i – 1]> 0, তারপর
      • উত্তর :=উত্তর + A[i] – A[i – 1]
  • উত্তর ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য বাস্তবায়ন দেখি

class Solution(object):
   def maxProfit(self, prices):
      """
      :type prices: List[int]
      :rtype: int
      """
      ans = 0
      for i in range(1,len(prices)):
         if prices[i] - prices[i-1] >0:
            ans+=(prices[i] - prices[i-1])
      return ans
ob1 = Solution()
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

ইনপুট

print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

আউটপুট

13

  1. ব্যবহৃত অ্যান্ড্রয়েড ফোন কেনা এবং বিক্রি করার 5টি সেরা জায়গা

  2. পাইথনে O(n) সময়ে BST এবং O(1) স্থানের মধ্যমা খুঁজুন

  3. পাইথনে ভেক্টরাইজেশন

  4. 2022 সালে ক্রেগলিস্টের মতো 10টি সাইট