编程之美之数组分割

本文讨论了如何通过动态规划解决无序数组分割问题,目标是将数组分割成两个子集,使两者的和尽可能接近。核心思路是从2n个数中选出n个数,让其总和接近整体和的一半,并介绍了通过查询先前计算过的和来优化算法的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无序数组,分割成为两个子数组,使得子数组之间的和最接近

问题转换为从2n个数中找出n个,使得他们的和最接近总体和的1/2


利用dp记录在前t个数中随机取i个的所有的可能的和即可,然后遍历,这样会出现指数级别



可以利用遍历可能的和的值,查询在该值在前面是否出现,这样会将复杂度降低到多项式级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值