ধরুন আমাদের অ-ঋণাত্মক পূর্ণসংখ্যার একটি অ্যারে আছে; আমরা প্রাথমিকভাবে অ্যারের প্রথম সূচকে অবস্থান করছি। প্রদত্ত অ্যারের প্রতিটি উপাদান সেই অবস্থানে সর্বাধিক লাফের দৈর্ঘ্য উপস্থাপন করে। আমাদের নির্ধারণ করতে হবে আমরা শেষ সূচকে পৌঁছাতে পারব কি না। সুতরাং যদি অ্যারেটি [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