ধরুন আমাদের একটি অ্যারে সংখ্যা আছে, যেখানে সমস্ত উপাদান ইতিবাচক। আমরা সূচক 0 এ আছি। এখানে, অ্যারের প্রতিটি উপাদান সেই অবস্থানে আমাদের সর্বোচ্চ লাফ দৈর্ঘ্য উপস্থাপন করে। আমাদের লক্ষ্য হল চূড়ান্ত সূচকে পৌঁছানো (n-1, যেখানে n সংখ্যার আকার) কম সংখ্যক লাফ দিয়ে। সুতরাং যদি অ্যারেটি [2,3,1,1,4] এর মত হয়, এবং তারপরে আউটপুট হবে 2, যেমন আমরা 0 থেকে সূচক 1 এ যেতে পারি, তারপর 4 সূচকে যেতে পারি, এটিই শেষ সূচক। পি>
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শেষ :=0, জাম্প :=0, দূরতম :=0
- আমি পরিসীমা 0 থেকে সংখ্যার দৈর্ঘ্য - 1
- দূরতম :=দূরতম এবং সংখ্যার সর্বোচ্চ [i] + i
- যদি 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([3, 4, 3, 0, 1]))
ইনপুট
[3, 4, 3, 0, 1]
আউটপুট
2