ধরুন আমাদের কাছে nums নামক সংখ্যার একটি তালিকা আছে, আমরা একটি ফাংশন সংজ্ঞায়িত করব যা অ-সংলগ্ন সংখ্যার বৃহত্তম যোগফল প্রদান করে। এখানে সংখ্যা 0 বা ঋণাত্মক হতে পারে।
সুতরাং, যদি ইনপুটটি [3, 5, 7, 3, 6] এর মত হয়, তাহলে আউটপুট 16 হবে, যেমন আমরা 16 পেতে 3, 7, এবং 6 নিতে পারি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব−
-
যদি সংখ্যার আকার <=2, তাহলে
-
সর্বাধিক সংখ্যা ফেরত দিন
-
-
না নিন :=0
-
নিন :=সংখ্যা[0]
-
আমি রেঞ্জ 1 থেকে সংখ্যার আকারের জন্য, করুন
-
take :=noTake + nums[i]
-
noTake :=সর্বাধিক noTake and take
-
-
সর্বাধিক না নিন এবং গ্রহণ করুন
ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): if len(nums) <= 2: return max(nums) noTake = 0 take = nums[0] for i in range(1, len(nums)): take, noTake = noTake + nums[i], max(noTake, take) return max(noTake, take) ob = Solution() nums = [3, 5, 7, 3, 6] print(ob.solve(nums))
ইনপুট
[3, 5, 7, 3, 6]
আউটপুট
16