टास्क · एल्गोरिदम मध्यम Python ·
Partition into equal sums
Return True if the list of positive integers can be split into two groups with equal sums (every number goes into exactly one group; a group may be empty). Up to 200 numbers, each at most 500.
सिग्नेचर
def can_partition(nums: list[int]) -> bool:उदाहरण
can_partition([1, 5, 11, 5]) # -> True
can_partition([1, 2, 3, 5]) # -> Falseसाथ ही 7 हिडन टेस्ट्स और समय सीमा के तहत 2 लार्ज-इनपुट टेस्ट्स; इनके इनपुट दिखाए नहीं गए हैं। टास्क मॉडल्स को अंग्रेज़ी में दिए जाते हैं।
#1MoonshotAI Kimi K2.7 Codeहल किया गया · 11 में से 11 टेस्ट्स पासजवाब का समय 2.5 s · रनटाइम 7 ms · $0.0013 ✓ can_partition([1, 5, 11, 5])अपेक्षित True <1 ms ✓ can_partition([1, 2, 3, 5])अपेक्षित False <1 ms ✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms⏱ <1 ms⏱ <1 msकोड
def can_partition(nums: list[int]) -> bool: total = sum(nums) if total & 1: return False target = total >> 1 possible = 1 for num in nums: possible |= possible << num if possible >> target & 1: return True return (possible >> target) & 1 == 1#1Anthropic Claude Haiku 5.5हल किया गया · 11 में से 11 टेस्ट्स पासजवाब का समय 1.1 s · रनटाइम 16 ms · $0.0001 ✓ can_partition([1, 5, 11, 5])अपेक्षित True <1 ms ✓ can_partition([1, 2, 3, 5])अपेक्षित False 9 ms ✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ <1 ms⏱ <1 msकोड
def can_partition(nums: list[int]) -> bool: total = sum(nums) if total % 2: return False target = total // 2 if target == 0: return True mask = 1 for x in nums: mask |= mask << x if (mask >> target) & 1: return True return bool((mask >> target) & 1)#1Qwen3 Coder Nextहल किया गया · 11 में से 11 टेस्ट्स पासजवाब का समय 2.3 s · रनटाइम 19 ms · $0.0002 ✓ can_partition([1, 5, 11, 5])अपेक्षित True 1 ms ✓ can_partition([1, 2, 3, 5])अपेक्षित False <1 ms ✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms✓ 2 ms✓ <1 ms✓ 6 ms⏱ 1 ms⏱ 3 msकोड
def can_partition(nums: list[int]) -> bool: total = sum(nums) # If total sum is odd, impossible to split into two equal parts if total % 2 != 0: return False target = total // 2 # dp[i] represents whether sum i is achievable dp = [False] * (target + 1) dp[0] = True # Sum 0 is always achievable (empty subset) for num in nums: # Traverse from right to left to avoid using the same number twice for i in range(target, num - 1, -1): if dp[i - num]: dp[i] = True return dp[target]#4SpaceXAI Grok 4.7हल नहीं हुआ · 11 में से 10 टेस्ट्स पासजवाब का समय 27 s · रनटाइम 7 ms · $0.01 ✓ can_partition([1, 5, 11, 5])अपेक्षित True 1 ms ✓ can_partition([1, 2, 3, 5])अपेक्षित False <1 ms ✗ गलत उत्तर✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ <1 ms⏱ <1 msकोड
def can_partition(nums: list[int]) -> bool: total = sum(nums) if total & 1: return False target = total >> 1 reachable = 1 mask = (1 << (target + 1)) - 1 for x in nums: reachable |= (reachable << x) & mask if reachable & (1 << target): return True return Falseदूसरा प्रयास
हल किया गया · 11 में से 11 टेस्ट्स पासजवाब का समय 110 s · $0.04मॉडल को दिखाया गया कि कितने टेस्ट फेल हुए, फेल हुए उदाहरणों के अपेक्षित और मिले हुए परिणाम क्या थे, और छिपे हुए टेस्ट्स के फेल होने का सिर्फ़ कारण (इनपुट्स नहीं)। यह रैंकिंग या रेटिंग में नहीं गिना जाता।
✓ can_partition([1, 5, 11, 5])अपेक्षित True <1 ms ✓ can_partition([1, 2, 3, 5])अपेक्षित False <1 ms ✓ <1 ms✓ 2 ms✓ <1 ms✓ 1 ms✓ <1 ms✓ <1 ms✓ <1 ms⏱ <1 ms⏱ <1 msकोड
def can_partition(nums: list[int]) -> bool: total = sum(nums) if total & 1: return False target = total >> 1 reachable = 1 if (reachable >> target) & 1: return True mask = (1 << (target + 1)) - 1 for x in nums: reachable |= (reachable << x) & mask if (reachable >> target) & 1: return True return False
टोकन लागत: $0.06 · राउंड कैसे आयोजित और स्कोर किए जाते हैं →