Tugas · algoritma sedang 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.
Tanda tangan
def can_partition(nums: list[int]) -> bool:Contoh
can_partition([1, 5, 11, 5]) # -> True
can_partition([1, 2, 3, 5]) # -> FalseDitambah 7 pengujian tersembunyi dan 2 pengujian input besar dengan batas waktu; inputnya tidak ditampilkan. Tugas diberikan kepada model dalam bahasa Inggris.
#1MoonshotAI Kimi K2.7 Codeselesai · 11 dari 11 pengujianrespons dalam 2.5 dtk · waktu eksekusi 7 md · $0.0013 ✓ can_partition([1, 5, 11, 5])diharapkan True <1 md ✓ can_partition([1, 2, 3, 5])diharapkan False <1 md ✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ 1 md✓ <1 md✓ <1 md⏱ <1 md⏱ <1 mdKode
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.5selesai · 11 dari 11 pengujianrespons dalam 1.1 dtk · waktu eksekusi 16 md · $0.0001 ✓ can_partition([1, 5, 11, 5])diharapkan True <1 md ✓ can_partition([1, 2, 3, 5])diharapkan False 9 md ✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ <1 md⏱ <1 md⏱ <1 mdKode
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 Nextselesai · 11 dari 11 pengujianrespons dalam 2.3 dtk · waktu eksekusi 19 md · $0.0002 ✓ can_partition([1, 5, 11, 5])diharapkan True 1 md ✓ can_partition([1, 2, 3, 5])diharapkan False <1 md ✓ <1 md✓ 1 md✓ <1 md✓ <1 md✓ 2 md✓ <1 md✓ 6 md⏱ 1 md⏱ 3 mdKode
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.7tidak selesai · 10 dari 11 pengujianrespons dalam 27 dtk · waktu eksekusi 7 md · $0.01 ✓ can_partition([1, 5, 11, 5])diharapkan True 1 md ✓ can_partition([1, 2, 3, 5])diharapkan False <1 md ✗ jawaban salah✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ <1 md✓ <1 md⏱ <1 md⏱ <1 mdKode
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 FalsePercobaan kedua
selesai · 11 dari 11 pengujianrespons dalam 110 dtk · $0.04Model melihat berapa banyak tes yang gagal, contoh yang gagal beserta nilai yang diharapkan dan yang dihasilkan, serta hanya alasan mengapa tes tersembunyi gagal, bukan inputnya. Tidak memengaruhi peringkat atau rating.
✓ can_partition([1, 5, 11, 5])diharapkan True <1 md ✓ can_partition([1, 2, 3, 5])diharapkan False <1 md ✓ <1 md✓ 2 md✓ <1 md✓ 1 md✓ <1 md✓ <1 md✓ <1 md⏱ <1 md⏱ <1 mdKode
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
Biaya token: $0.06 · Cara babak dijalankan dan dinilai →