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

सबसे दूर की इमारत का पता लगाने के लिए कार्यक्रम जो एक पार्कौर कलाकार पायथन में पहुंच सकता है

मान लीजिए, अलग-अलग ऊंचाई के घरों की संख्या n है और एक पार्कौर कलाकार कुछ ईंटों और सीढ़ियों की मदद से एक घर से दूसरे घर जाना चाहता है। घरों की ऊंचाई हमें एक सरणी के रूप में दी गई है। प्रत्येक ईंट एक इकाई लंबाई की होती है और हमें उनमें से एक मुट्ठी भर दी जाती है। हम सीढ़ियों और ईंटों का उपयोग केवल एक बार ही कर सकते हैं। हमें उस सबसे दूर की इमारत का पता लगाना है जहां पार्कौर कलाकार जा सकता है।

इसलिए, अगर इनपुट हाइट्स =[5, 8, 7, 6, 2, 3, 1, 4], ब्रिक्स =3, लैडर =2 जैसा है, तो आउटपुट 7 होगा।

कलाकार 0 के निर्माण से शुरू होता है।

वह 3 ईंटों की मदद से बिल्डिंग 1 तक पहुंचता है।

वह 2, 3, 4 के निर्माण के लिए कूदता है क्योंकि उत्तराधिकारी इमारतें पूर्ववर्ती इमारतों की तुलना में छोटी होती हैं।

वह इमारत 4 से इमारत 5 तक जाने के लिए सीढ़ी का उपयोग करता है।

वह इमारत 5 से इमारत 6 पर कूदता है क्योंकि इमारत 6 छोटी है।

वह इमारत 7 तक पहुँचने के लिए आखिरी सीढ़ी का उपयोग करता है।

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

  • अस्थायी:=एक नया ढेर

  • मेरे लिए 1 से लेकर ऊंचाई के आकार तक, करें

    • जिला:=ऊँचाई [i] - ऊँचाई [i - 1]

    • अगर जिला> 0, तो

      • ईंटें :=ईंटें - जिला

      • पुश वैल्यू -डिस्ट टू द हीप टेम्प

      • अगर ईंटें <0, तो

        • सीढ़ी :=सीढ़ी - 1

        • ईंटें :=ईंटें - हीप टेम्परेचर से निकाला गया सबसे छोटा तत्व

        • अगर ईंटें <0 या सीढ़ी <0, तो

          • वापसी मैं - 1

  • ऊंचाई का वापसी आकार - 1

उदाहरण

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

from heapq import heappush, heappop
def solve(heights, bricks, ladders):
   temp = []
   for i in range(1, len(heights)):
      dist = heights[i] - heights[i - 1]
      if dist > 0:
         bricks -= dist
         heappush(temp, -dist)
         if bricks < 0:
            ladders -= 1
            bricks -= heappop(temp)
            if bricks < 0 or ladders < 0:
               return i - 1
   return len(heights) - 1

print(solve([5, 8, 7, 6, 2, 3, 1, 4], 3, 2))

इनपुट

[5, 8, 7, 6, 2, 3, 1, 4], 3, 2

आउटपुट

7

  1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

  1. पायथन में एक परिवार में वंशानुक्रम क्रम का पता लगाने का कार्यक्रम

    मान लीजिए, एक परिवार है जिसमें विभिन्न पीढ़ियों के सदस्य हैं। जैसे परिवार में एक पिता, उसके बच्चे और उनकी दादी हैं। लेकिन जन्म और मृत्यु प्रत्येक परिवार में होती है। परिवार के सबसे बड़े सदस्य को मुखिया माना जाता है। इसलिए, जब प्रमुख सदस्य की मृत्यु हो जाती है, तो उनका प्रत्यक्ष उत्तराधिकारी या उनके

  1. पायथन में गोदाम में कितने बक्से रखे जा सकते हैं यह पता लगाने के लिए कार्यक्रम

    मान लीजिए, हमारे पास दो सरणियाँ हैं जिनमें पूर्णांक हैं। एक सूची में कुछ इकाई चौड़ाई वाले बक्सों की ऊँचाई होती है और दूसरी सूची में गोदाम में कमरों की ऊँचाई होती है। कमरों की संख्या 0...n है, और कमरों की ऊंचाई सरणी गोदाम में उनके संबंधित सूचकांक में प्रदान की जाती है। हमें पता लगाना है कि कितने बक्स