मान लीजिए कि हमारे पास दैनिक तापमान T की एक सूची है, हमें एक सूची वापस करनी होगी, जैसे इनपुट में प्रत्येक दिन के लिए, यह दर्शाता है कि गर्म तापमान तक हमें कितने दिन इंतजार करना होगा . अगर कोई भविष्य का दिन नहीं है जिसके लिए यह संभव है, तो इसके बजाय 0 स्टोर करें। उदाहरण के लिए, यदि T =[73, 74, 75, 71, 69, 72, 76, 73], तो आउटपुट [1, 1, 4, 2, 1, 1, 0, 0] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- Ans :=T के समान आकार की एक सरणी, और इसे 0 से भरें
- एक स्टैक को परिभाषित करें, और स्टैक में 0 डालें, और i:=1
- जबकि मैं <टी की लंबाई
- जबकि स्टैक एलिमेंट काउंट 0 नहीं है और T[i]> T[स्टैक टॉप एलिमेंट]
- इंडेक्स:=स्टैक टॉप एलिमेंट
- ans[index] :=i – index
- स्टैक से शीर्ष तत्व हटाएं
- यदि स्टैक की लंबाई 0 या T[i] <=T[स्टैक टॉप एलिमेंट]
- . है
- 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]