ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে, আমাদের পরীক্ষা করতে হবে এমন একটি সাবলিস্ট আছে কি না যাতে তার যোগফল তালিকার মোট যোগফলের থেকে কঠোরভাবে বেশি হয়।
সুতরাং, যদি ইনপুটটি nums =[1, −2, 3, 4] এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ তালিকার যোগফল 6 এবং সাবলিস্ট [3, 5] এর যোগফল হল 8 যা হল কঠোরভাবে বড়।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
মোট :=উপাদান সংখ্যার যোগফল
-
s :=0
-
প্রতিটি i সংখ্যায়, করুন
-
s :=s + i
-
যদি s <0, তাহলে
-
রিটার্ন ট্রু
-
-
-
s :=0
-
i :=সংখ্যার আকার − 1
-
যখন i> −1, কর
-
s :=s + nums[i]
-
যদি s <0, তাহলে
-
রিটার্ন ট্রু
-
-
i :=i − 1
-
-
রিটার্ন ফলস
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): total = sum(nums) s = 0 for i in nums: s += i if s < 0: return True s = 0 i = len(nums) − 1 while i > −1: s += nums[i] if s < 0: return True i = i − 1 return False ob1 = Solution() nums = [2, -4, 3, 5] print(ob1.solve(nums))
ইনপুট
[2, −4, 3, 5]
আউটপুট
True