🗒️416. 分割等和子集
2024-11-12
| 2024-11-12
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Nov 12, 2024 02:46 AM
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

解法:0-1 背包问题
思路:数组的所有的元素和是明确的,则两个子集的元素和相等,也就是所有元素和的一半。因此,我们可以将题目转化为从数组中选取元素,使其结果恰好等于和的一半。也就是 0-1 背包问题求方案数。只要最后的方案上数大于 1,就表示可行。
此外,我们还有一些优化手段:
  1. 数组的和为奇数,不用后续的操作
  1. 数组的最大元素值超过了数组和一半的值,不需要后续的操作
空间优化──滚动数组

解法二:0-1背包问题。利用逻辑运算来求解,选或者不选,只要一个满足就行了。

📎 参考

  • 动态规划
  • 77. 组合给定两个字符串 s 和 t,找到 s 中第一个 t 的异位词的子串。
    Loading...
    目录