Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

उन इमारतों को खोजने का कार्यक्रम जहां से समुद्र को पायथन में देखा जा सकता है

मान लीजिए हमारे पास विभिन्न इमारतों की ऊंचाई की एक सूची है। ऊंचाई मूल्य वाली एक इमारत [i] समुद्र को तब देख सकती है जब उसके दायीं ओर की हर इमारत उस इमारत से छोटी हो। हमें भवन सूचकांकों को ढूँढ़ना होगा जहाँ से हम समुद्र को आरोही क्रम में देख सकते हैं।

इसलिए, यदि इनपुट हाइट्स =[8, 12, 12, 9, 10, 6] की तरह है, तो आउटपुट [2, 4, 5] होगा क्योंकि हम इंडेक्स 2 पर ऊंचाई 12 से समुद्र को देख सकते हैं। इंडेक्स 10 पर बिल्डिंग की ऊंचाई 10 और इंडेक्स 5 पर आखिरी बिल्डिंग से।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • स्टैक:=एक नई सूची
  • हर इंडेक्स idx और ऊंचाई h ऊंचाई के लिए, करें
    • जबकि स्टैक खाली नहीं है और ऊंचाई[स्टैक के शीर्ष] <=h, do
      • स्टैक से अंतिम तत्व हटाएं
  • आईडीएक्स को स्टैक में पुश करें
  • रिटर्न स्टैक

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(heights):
   stack = []
   for idx, h in enumerate(heights):
      while stack and heights[stack[-1]] <= h:
         stack.pop()
      stack.append(idx)
   return stack

heights = [8, 12, 12, 9, 10, 6]
print(solve(heights))

इनपुट

[8, 12, 12, 9, 10, 6]

आउटपुट

[2, 4, 5]

  1. प्रोग्राम यह पता लगाने के लिए कि हम पायथन में कुल कितनी बारिश पकड़ सकते हैं

    मान लीजिए कि हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये उस ऊंचाई का प्रतिनिधित्व कर रहे हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी होगी कि बारिश के बाद यह कितना पानी पकड़ने में सक्षम है। तो नक्शा इस तरह होगा - यहां हम देख सकते हैं कि 8 नीले बॉक्स हैं, इसलिए आउटपुट 8 होगा। इसे

  1. पायथन में एक श्रेणी में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बीएसटी है, और हमारे पास बाएं और दाएं सीमाएं एल और आर भी हैं, हमें रूट में उन सभी नोड्स की गिनती ढूंढनी है जिनके मान एल और आर (समावेशी) के बीच मौजूद हैं। तो, अगर इनपुट पसंद है l =7, r =13, तो आउटपुट 3 होगा, क्योंकि तीन नोड हैं:8, 10, 12. इसे हल करने के लिए, हम इन चरणों

  1. सूची से एन सबसे बड़े तत्वों को खोजने के लिए पायथन कार्यक्रम

    एक पूर्णांक सूची को देखते हुए, हमारा कार्य सूची में N सबसे बड़े तत्वों को खोजना है। उदाहरण Input : [40, 5, 10, 20, 9] N = 2 Output: [40, 20] एल्गोरिदम Step1: Input an integer list and the number of largest number. Step2: First traverse the list up to N times. Step3: Each traverse find the largest va