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

पायथन में जांचें कि क्या हम सूची के अंत तक k से शुरू करके पहुंच सकते हैं


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक अन्य संख्या k है। यदि हम इंडेक्स k से शुरू करते हैं और किसी भी इंडेक्स i पर, हम बाएं या दाएं ठीक nums[i] चरण जा सकते हैं। हमें जांचना है कि क्या हम सूची के अंत तक पहुंच सकते हैं या नहीं।

उदाहरण के लिए, यदि इनपुट है nums = [0, 0, 2, 1, 3, 3, 1, 1], k = 2, तो आउटपुट होगा True, क्योंकि यदि हम इंडेक्स 2 से शुरू करते हैं, तो इंडेक्स 4 पर कूदते हैं और फिर अंतिम इंडेक्स 7 पर कूदते हैं।

हल करने के चरण

  • n := nums का आकार।
  • visited := आकार n की सूची, 0 से भरी हुई।
  • tovisit := आकार 1 की सूची, जिसमें k डाला गया हो।
  • जब तक tovisit का आकार 0 से बड़ा है:
    • i := tovisit का अंतिम तत्व, और इसे tovisit से हटाएं।
    • यदि i, n-1 के समान है, तो True लौटाएं।
    • यदि visited[i] 1 के समान नहीं है, तो:
      • visited[i] := 1
      • up := i + nums[i]
      • down := i - nums[i]
      • यदि up < n, तो up को tovisit के अंत में डालें।
      • यदि down >= 0, तो down को tovisit के अंत में डालें।
  • False लौटाएं।

उदाहरण

class Solution:
    def solve(self, nums, k):
        n = len(nums)
        visited = [0] * n
        tovisit = [k]
        while len(tovisit) > 0:
            i = tovisit.pop()
            if i == n-1:
                return True
            if visited[i] != 1:
                visited[i] = 1
                up = i + nums[i]
                dn = i - nums[i]
                if up < n:
                    tovisit.append(up)
                if dn >= 0:
                    tovisit.append(dn)
        return False

ob = Solution()
nums = [0, 0, 2, 1, 3, 3, 1, 1]
k = 2
print(ob.solve(nums, k))

इनपुट

[0, 0, 2, 1, 3, 3, 1, 1], 2

आउटपुट

True
  1. पायथन में जांचने का प्रोग्राम कि रोबोट विज़िट किए गए स्थानों पर चलकर लक्ष्य तक पहुंच सकता है या नहीं पायथन में जांचने का प्रोग्राम कि रोबोट विज़िट किए गए स्थानों पर चलकर लक्ष्य तक पहुंच सकता है या नहीं

    मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में स्थिति (0, 0) (कार्तीय तल) पर बैठा है। यदि हमारे पास उसकी चालों की एक सूची है जो वह बना सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) शामिल हैं। हालांकि, यदि रोबोट किसी ऐसे स्थान पर पहुंचता है जहां वह पहले जा चुका है, तो वह उसी दिशा में त

  1. - पायथन में जांचें कि क्या इंडेक्स 0 से अंतिम पोजीशन तक पहुंचा जा सकता है

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जहां प्रत्येक संख्या अधिकतम कूद की संख्या दर्शाती है; हमें जांचना है कि क्या हम इंडेक्स 0 से शुरू करके अंतिम इंडेक्स तक पहुंच सकते हैं या नहीं। उदाहरण के लिए, यदि इनपुट nums = [2,5,0,2,0] है, तो आउटपुट True होगा, क्योंकि हम इंडेक्स 0 से 1 तक कूद स

  1. पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं पायथन में जांचें कि रोबोट लक्ष्य स्थिति तक पहुंच सकता है या नहीं

    मान लीजिए हमारे पास एक रोबोट है, जो वर्तमान में स्थिति (0, 0) (कार्टेशियन प्लेन) पर बैठा है। यदि हमारे पास उसकी चालों की सूची है जो वह चल सकता है, जिसमें N(उत्तर), S(दक्षिण), W(पश्चिम), और E(पूर्व) हैं। हमें जांचना है कि क्या वह गंतव्य निर्देशांक (x, y) पर पहुंच सकता है। उदाहरण के लिए, यदि इनपुट mov