type
status
date
slug
summary
tags
category
icon
password
创建时间
Nov 12, 2024 02:46 AM
给你一个 只包含正整数 的 非空 数组
nums
。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。解法:0-1 背包问题
思路:数组的所有的元素和是明确的,则两个子集的元素和相等,也就是所有元素和的一半。因此,我们可以将题目转化为从数组中选取元素,使其结果恰好等于和的一半。也就是 0-1 背包问题求方案数。只要最后的方案上数大于
1
,就表示可行。此外,我们还有一些优化手段:
- 数组的和为奇数,不用后续的操作
- 数组的最大元素值超过了数组和一半的值,不需要后续的操作
空间优化──滚动数组
解法二:0-1背包问题。利用逻辑运算来求解,选或者不选,只要一个满足就行了。
📎 参考
- 无