मान लीजिए कि हमारे पास गैर-ऋणात्मक पूर्णांकों की एक सरणी है; हम शुरू में सरणी के पहले सूचकांक में स्थित हैं। दिए गए सरणी में प्रत्येक तत्व उस स्थिति में अधिकतम छलांग लंबाई का प्रतिनिधित्व करता है। हमें यह तय करना होगा कि हम अंतिम सूचकांक तक पहुंच पाते हैं या नहीं। तो यदि सरणी [2,3,1,1,4] की तरह है, तो आउटपुट सत्य होगा। यह स्थिति 0 से 1 तक एक कदम कूदने जैसा है, फिर स्थिति 1 से अंत तक तीन कदम।
आइए चरणों को देखें -
- n :=सरणी A की लंबाई - 1
- i :=n-1 के लिए, -1 से नीचे
- यदि A[i] + i> n, तो n :=i
- सही लौटें जब n =0, अन्यथा गलत हो
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution(object): def canJump(self, nums): n = len(nums)-1 for i in range(n-1,-1,-1): if nums[i] + i>=n: n = i return n ==0 ob1 = Solution() print(ob1.canJump([2,3,1,1,4]))
इनपुट
[2,3,1,1,4]
आउटपुट
True