मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, हम एक फ़ंक्शन को परिभाषित करेंगे जो गैर-आसन्न संख्याओं का सबसे बड़ा योग देता है। यहां अंक 0 या ऋणात्मक हो सकते हैं।
इसलिए, यदि इनपुट [3, 5, 7, 3, 6] जैसा है, तो आउटपुट 16 होगा, क्योंकि हम 16 प्राप्त करने के लिए 3, 7, और 6 ले सकते हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे-
-
यदि अंकों का आकार <=2, तो
-
अधिकतम अंक लौटाएं
-
-
नोटेक :=0
-
ले लो:=अंक [0]
-
मेरे लिए 1 से लेकर अंकों के आकार तक, करें
-
ले लो:=नोटेक + अंक [i]
-
नोटेक :=अधिकतम नोटेक एंड टेक
-
-
नोटेक एंड टेक की अधिकतम वापसी करें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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