ধরুন একজন বাইকার আছেন যিনি রোড ট্রিপে যাচ্ছেন। বিভিন্ন উচ্চতায় তার রোড ট্রিপের বিভিন্ন পয়েন্ট রয়েছে। বাইকার তার ট্রিপ 0 বিন্দু থেকে উচ্চতা 0 দিয়ে শুরু করে। যদি আমাদের কাছে n উপাদানের সাথে লাভ বলে একটি ক্রম থাকে, তাহলে লাভ[i] হল সকলের জন্য i এবং i + 1 বিন্দুর মধ্যে উচ্চতায় নেট লাভ (0 <=i
সুতরাং, ইনপুট যদি লাভ =[-4,2,6,1,-6] এর মত হয়, তাহলে আউটপুট হবে 5, কারণ উচ্চতা হল [0,-4,-2,4,5,-1] , তাই সর্বোচ্চ 5।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
সর্বোচ্চ :=0
run_alt :=0
লাভের প্রতিটি ডেল্টার জন্য, করুন
run_alt :=run_alt + ডেল্টা
সর্বোচ্চ :=সর্বোচ্চ এবং রান_অল্টের সর্বোচ্চ
সর্বোচ্চ রিটার্ন করুন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ (পাইথন)
def solve(gain):
maximum = 0
run_alt = 0
for delta in gain:
run_alt += delta
maximum = max(maximum, run_alt)
return maximum
gain = [-4,2,6,1,-6]
print(solve(gain))
ইনপুট
[-4,2,6,1,-6]
আউটপুট
5