मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जहां प्रत्येक संख्या हमारे द्वारा की जा सकने वाली छलांगों की अधिकतम संख्या दर्शाती है; हमें यह जांचना होगा कि क्या हम इंडेक्स 0 से शुरू होने वाले अंतिम इंडेक्स तक पहुंच सकते हैं या नहीं।
इसलिए, यदि इनपुट nums =[2,5,0,2,0] जैसा है, तो आउटपुट ट्रू होगा, क्योंकि हम इंडेक्स 0 से 1 तक कूद सकते हैं, फिर इंडेक्स 1 से अंत तक कूद सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे-
-
n :=अंकों का आकार
-
arr :=आकार n की एक सरणी और असत्य से भरें
-
गिरफ्तारी [एन -1]:=सच
-
मेरे लिए n - 2 से 0 की श्रेणी में, 1 से घटाएं, करें
-
arr[i] :=true अगर arr में से कोई एक [इंडेक्स i + 1 से i + nums[i]] तक सही है
-
-
वापसी गिरफ्तारी[0]
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): n = len(nums) arr = [False] * n arr[n - 1] = True for i in range(n - 2, -1, -1): arr[i] = any(arr[i + 1 : i + nums[i] + 1]) return arr[0] ob = Solution() nums = [2,5,0,2,0] print(ob.solve(nums))
इनपुट
[2,5,0,2,0]
आउटपुट
True