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

पायथन में निचले दाएं कोने तक पहुंचने के लिए आवश्यक न्यूनतम संख्या में कोशिकाओं को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक 2D ग्रिड है जो एक भूलभुलैया का प्रतिनिधित्व करता है जहां 0 खाली जगह के लिए है, और 1 दीवार है। हम ग्रिड से शुरू करेंगे [0, 0], हमें ग्रिड के निचले दाएं कोने तक पहुंचने के लिए न्यूनतम वर्गों की संख्या ज्ञात करनी होगी। यदि हम नहीं पहुँच सकते हैं, तो -1 पर लौटें।

तो, अगर इनपुट पसंद है

0 0 0
1 0 0
1 0 0

तो आउटपुट 5

. होगा

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

  • आर:=ग्रिड की पंक्ति गणना, सी:=ग्रिड की कॉलम गणना

  • q :=[0, 0, 1] जब A[0, 0] 1 है अन्यथा एक नई सूची

  • ए[0, 0] :=1

  • क्यू में प्रत्येक (आर, सी, डी) के लिए, करो

    • अगर (आर, सी) (आर -1, सी -1) के समान है, तो

      • वापसी d


      • [(r + 1, c) ,(r − 1, c) ,(r, c + 1) ,(r, c − 1)] में प्रत्येक (x, y) के लिए, करें

        • यदि x 0 से R की श्रेणी में है और y 0 से C की श्रेणी में है और A[x, y] 0 के समान है, तो

          • ए[एक्स, वाई] :=1

          • q के अंत में (x, y, d + 1) डालें

  • वापसी -1

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

उदाहरण

class Solution:
   def solve(self, A):
      R, C = len(A), len(A[0])
      q = [(0, 0, 1)] if not A[0][0] else []
      A[0][0] = 1
      for r, c, d in q:
         if (r, c) == (R − 1, C − 1):
            return d
         for x, y in [(r + 1, c), (r − 1, c), (r, c + 1), (r, c −1)]:
            if 0 <= x < R and 0 <= y < C and A[x][y] == 0:
               A[x][y] = 1
               q.append((x, y, d + 1))
      return −1
ob = Solution()
grid = [
   [0, 0, 0],
   [1, 0, 0],
   [1, 0, 0]
]
print(ob.solve(grid))

इनपुट

grid = [ [0, 0, 0], [1, 0, 0], [1, 0, 0] ]

आउटपुट

5

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

    मान लीजिए हमारे पास रंगों की एक सूची है (आर, जी, बी)। अब अगर दो अलग-अलग रंग एक-दूसरे के बगल में हों तो वे तीसरे रंग की एक ही रंग की वस्तु में बदल सकते हैं। हमें ऐसे परिवर्तनों के किसी भी संभावित क्रम के बाद शेष बची सबसे छोटी संख्या ज्ञात करनी होगी। इसलिए, यदि इनपुट रंग =[G, R, G, B, R] जैसा है, तो

  1. अजगर में सभी पेड़ों को जलाने में लगने वाले दिनों की संख्या का पता लगाने का कार्यक्रम

    मान लीजिए हमारे पास एक 2डी मैट्रिक्स है जो एक जंगल का प्रतिनिधित्व करता है जहां तीन प्रकार की कोशिकाएं हैं:0 खाली सेल 1 ट्री सेल 2 फायर सेल पर पेड़ हर दिन, एक पेड़ आग पकड़ता है जब एक आसन्न होता है (ऊपर, नीचे, बाएं, दाएं, नहीं विकर्ण) पेड़ में आग लगी है। हमें यह पता लगाना होगा कि प्रत्येक पेड़ में आग

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

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट को देखते हुए, दी गई संख्या के गुणनखंडों का न्यूनतम योग ज्ञात करें। यहां हम सभी कारकों और उनके संगत योग की गणना करेंगे और फिर उनमें से न्यूनतम का पता लगाएंगे। इसलिए संख्या के गुणनफल का न्यूनतम योग ज्