মান ল করুন nums নামের একটি সংখ্যার তালিকা, আমাদের পরীক্ষা করতে হবে কি তালিকাটিকে A এবং B নামে দুটি গ্রুপে ভাগ করা যায় যাতে: A এবং B-এর যোগফল সমান হয়। এখানে A-এর প্রতিটি সংখ্যা B-এর প্রতিটি সংখ্যার চেয়ে কঠোরভাবে ছোট।
যদি ইনপুট হয় nums = [3, 4, 5, 12], তবে আউটপুট হবে True, কারণ আমরা A = [3,4,5] এবং B = [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