#牛客在线求职答疑中心#小红有n个朋友。她准备邀请些朋友 请他们吃饭。 10 11 已知第i个朋友的财富值为a;,小红邀请他
全部评论

像背包问题,去看看代码随想录
小红有n个朋友,她准备邀请一些朋友来请他们吃饭。已知第i个朋友的财富值为a[i],小红邀请他们的花费为b[i]。小红希望邀请的朋友的总财富值最大,并且花费不超过她的预算m。
这个问题可以通过动态规划来解决。首先,我们需要定义一个数组dp,其中dp[i][j]表示前i个朋友中,花费不超过j的最大财富值。然后,我们可以遍历所有的朋友,对于每个朋友,我们有两种选择:邀请他或不邀请他。
如果不邀请他,那么dp[i][j] = dp[i-1][j]。
如果邀请他,那么dp[i][j] = max(dp[i-1][j-b[i]] + a[i], dp[i-1][j])。
最后,我们需要找到dp[n][m],即花费不超过m的最大财富值。
这个问题的时间复杂度为O(nm),空间复杂度为O(nm)。
相关推荐
昨天 11:28
门头沟学院 Java 点赞 评论 收藏
分享