কম্পিউটার টিউটোরিয়াল

পাইথনে স্টক প্রাইস থেকে লাভের জন্য ন্যূনতম দিন গণনা করার প্রোগ্রাম


প্রতিদিনের স্টক প্রাইসের তালিকা দেওয়া আছে। প্রতিটি দিনের জন্য লাভ করতে হলে ন্যূনতম কত দিন অপেক্ষা করতে হবে তা বের করুন। লাভ সম্ভব নাও হলে ০।

উদাহরণ: prices = [4,3,5,9,7,6] → আউটপুট [2,1,1,0,0,0]।

সমাধানের ধাপগুলো:

  • মনোটোনিক স্ট্যাক ব্যবহার করুন।
  • প্রতিটি প্রাইসের জন্য স্ট্যাকের টপের চেয়ে বড় হলে পপ করে দিনের পার্থক্য রেকর্ড করুন।

উদাহরণ

class Solution:
    def solve(self, prices):
        ans = [0 for _ in prices]
        q = []
        for i, p in enumerate(prices):
            while q and p > q[-1][1]:
                j = q[-1][0]
                ans[j] = i - j
                q.pop()
            q.append((i, p))
        return ans

ob = Solution()
prices = [4, 3, 5, 9, 7, 6]
print(ob.solve(prices))

ইনপুট

[4, 3, 5, 9, 7, 6]

আউটপুট

[2, 1, 1, 0, 0, 0]
  1. পাইথনে রঙ মার্জ করলে অবশিষ্ট ন্যূনতম রঙের সংখ্যা বের করার প্রোগ্রাম

  2. পাইথনে চেঞ্জ করার ন্যূনতম কয়েন সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি সংখ্যাকে অন্য সংখ্যায় রূপান্তর করার ন্যূনতম অপারেশন বের করার প্রোগ্রাম

  4. পাইথনে স্ট্রিং s-কে পরিবর্তন করে t কে সাবস্ট্রিং बनानेয় ন্যূনতম অপারেশন বের করার প্রোগ্রাম