ধরুন আমাদের পূর্ণসংখ্যার একটি অ্যারে আছে, যেখানে সমস্ত উপাদান ধনাত্মক। প্রাথমিক সূচনা বিন্দু হল সূচক 1। অ্যারের প্রতিটি উপাদান সেই অবস্থানে আমাদের সর্বোচ্চ লাফ দৈর্ঘ্য উপস্থাপন করে। আমাদের লক্ষ্য হল কম সংখ্যক লাফ দিয়ে ফাইনাল সেলে পৌঁছানো। সুতরাং যদি অ্যারেটি [2,3,1,1,4] এর মতো হয়, এবং তারপরে আউটপুট হবে 2, যেমন আমরা 0 থেকে সূচক 1-এ যেতে পারি, তারপর সূচী 4-এ যেতে পারি, এটাই শেষ সূচক। পি>
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
শেষ :=0, লাফ :=0, দূরতম :=0
-
আমি 0 থেকে সংখ্যার দৈর্ঘ্য - 1
এর মধ্যে-
দূরতম :=দূরতমের সর্বোচ্চ এবং সংখ্যা[i] + i
-
যদি আমি শেষ হয়, এবং আমি সংখ্যার দৈর্ঘ্য না - 1, তাহলে
-
1 দ্বারা লাফ বাড়ান
-
শেষ :=দূরতম
-
-
-
রিটার্ন জাম্পস
উদাহরণ
আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -
class Solution(object): def jump(self, nums): end = 0 jumps = 0 farthest = 0 for i in range(len(nums)): farthest = max(farthest,nums[i]+i) if i == end and i != len(nums)-1: jumps+=1 end = farthest return jumps ob = Solution() print(ob.jump([2,3,1,1,4]))
ইনপুট
[2,3,1,1,4]
আউটপুট
2