मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें यह जांचना है कि क्या हम सूची को दो समूहों A और B में विभाजित कर सकते हैं जैसे कि: A का योग और B का योग समान हो। यहां A में प्रत्येक संख्या B में प्रत्येक संख्या से सख्ती से छोटी हो।
इसलिए, यदि इनपुट nums = [3, 4, 5, 12] जैसा है, तो आउटपुट True होगा, क्योंकि हमारे पास A = [3,4,5] और B = [12] हो सकते हैं और दोनों का योग 12 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −
सूची nums को सॉर्ट करें
total := nums में सभी तत्वों का योग
s := 0, i := 0
जब तक i < nums का आकार, करें
n := nums[i]
जब तक i < nums का आकार और nums[i] n के समान है, करें
s := s + nums[i]
i := i + 1
यदि s, total - s के समान है, तो
True वापस करें
False वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −
उदाहरण
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