ধরুন আমাদের দৈনিক তাপমাত্রা T-এর একটি তালিকা আছে, আমাদের একটি তালিকা দিতে হবে যাতে, ইনপুটে প্রতিটি দিনের জন্য, দেখায় যে উষ্ণ তাপমাত্রা পর্যন্ত আমাদের কত দিন অপেক্ষা করতে হবে . যদি ভবিষ্যতে এমন কোন দিন না থাকে যার জন্য এটি সম্ভব, তার পরিবর্তে 0 সংরক্ষণ করুন। উদাহরণস্বরূপ, যদি T =[73, 74, 75, 71, 69, 72, 76, 73], আউটপুট হবে [1, 1, 4, 2, 1, 1, 0, 0]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- উত্তর :=টি আকারের একটি অ্যারে, এবং এটি 0 দিয়ে পূরণ করুন
- একটি স্ট্যাক সংজ্ঞায়িত করুন, এবং স্ট্যাকের মধ্যে 0 ঢোকান এবং i :=1
- যখন আমি
এর দৈর্ঘ্য - যখন স্ট্যাক উপাদান সংখ্যা 0 এবং T[i]> T[স্ট্যাক শীর্ষ উপাদান]
- সূচক :=স্ট্যাক শীর্ষ উপাদান
- উত্তর[সূচি] :=i – সূচক
- স্ট্যাক থেকে শীর্ষ উপাদান মুছুন
- যদি স্ট্যাকের দৈর্ঘ্য 0 বা T[i] <=T[স্ট্যাকের শীর্ষ উপাদান]
- স্ট্যাকে i ঢোকান
- i 1 দ্বারা বাড়ান
- যখন স্ট্যাক উপাদান সংখ্যা 0 এবং T[i]> T[স্ট্যাক শীর্ষ উপাদান]
উদাহরণ(পাইথন)
আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −
class Solution(object): def dailyTemperatures(self, T): ans = [0 for i in range(len(T))] stack = [] stack.append(0) i=1 while i <len(T): while len(stack) and T[i]>T[stack[-1]]: index = stack[-1] ans[index] = i-index stack.pop() if not len(stack) or T[i]<=T[stack[-1]]: stack.append(i) i+=1 return ans ob1 = Solution() print(ob1.dailyTemperatures([73,74,75,71,69,72,76,73]))
ইনপুট
[73,74,75,71,69,72,76,73]
আউটপুট
[1, 1, 4, 2, 1, 1, 0, 0]