मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहते हैं, हमें यह जांचना है कि क्या हम सूची को दो समूहों ए और बी में विभाजित कर सकते हैं जैसे:ए का योग और बी का योग समान है। यहां ए में हर संख्या बी में हर संख्या से सख्ती से छोटी है।
इसलिए, यदि इनपुट संख्या =[3, 4, 5, 12] की तरह है, तो आउटपुट सही होगा, क्योंकि हमारे पास ए =[3,4,5] और बी =[12] हो सकते हैं और दोनों का योग 12 है ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची संख्या क्रमित करें
-
कुल:=अंकों में सभी तत्वों का योग
-
एस:=0, मैं:=0
-
जबकि मैं <अंकों का आकार, करता हूं
-
n:=अंक [i]
-
जबकि मैं <अंकों और अंकों का आकार [i] n के समान है, करें
-
एस:=एस + अंक [i]
-
मैं :=मैं + 1
-
-
यदि s कुल − s के समान है, तो
-
सही लौटें
-
-
-
झूठी वापसी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): nums.sort() total = sum(nums) s = 0 i = 0 while i < len(nums): n = nums[i] while i < len(nums) and nums[i] == n: s += nums[i] i += 1 if s == total - s: return True return False ob = Solution() nums = [3, 4, 5, 12] print(ob.solve(nums))
इनपुट
[3, 4, 5, 12]
आउटपुट
True