ধরুন আমাদের কাছে সংখ্যা নামক ধনাত্মক মানের একটি বিন্যাস রয়েছে, আমাদের সংখ্যায় একটি ঊর্ধ্বগামী সাবয়ারের সর্বাধিক সম্ভাব্য যোগফল খুঁজে বের করতে হবে। আমরা বলতে পারি একটি সাবঅ্যারে [nums_l, nums_l+1, ..., nums_r-1, nums_r] ঊর্ধ্বমুখী হয় যখন সমস্ত i যেখানে l <=i
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[15,25,35,5,15,55], তাহলে আউটপুট হবে 75 কারণ [5,15,55] সর্বাধিক যোগফল সহ সাবয়ারে বাড়ছে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
মোট:=সংখ্যা[0]
সর্বোচ্চ_মোট:=সংখ্যা[0]
আমি রেঞ্জ 1 থেকে সংখ্যার আকারের জন্য, করুন
যদি nums[i]> nums[i-1] হয়, তাহলে
মোট :=মোট + সংখ্যা[i]
অন্যথায়,
মোট:=সংখ্যা[i]
যদি মোট> সর্বোচ্চ_মোট, তাহলে
max_total:=মোট
সর্বোচ্চ_মোট ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(nums):total=nums[0] max_total=nums[0] রেঞ্জে i এর জন্য(1,len(nums)):if nums[i]> nums[i-1]:total+=nums আর
ইনপুট
[15,25,35,5,15,55]
আউটপুট
75