未验证 提交 2945b81e 编写于 作者: K Keqi Huang 提交者: GitHub

Create qqchangE_problem.md

上级 18a08ecc
```python
def canPartition(nums):
def dfs(nums, target, num):
for i in range(n):
B = nums[:i] + nums[i + 1:]
if num + nums[i] == target:
return True
elif num + nums[i] < target:
if dfs(B, target, num + nums[i]):
return True
elif num == 0: # 有一个数比sum/2还大,直接返回False
return False
return False
n, total = len(nums), sum(nums)
if total % 2 != 0: return False
target = total // 2
nums.sort(reverse=True) # 逆序排序,先从大的开始判断,速度会更快
res = dfs(nums, target, 0)
return res
print(canPartition([3, 3, 3, 4, 5]))
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册