恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。
作者@TechGuide【全网同名】
订阅专栏: 【专享版】2024最新大厂笔试真题解析,错过必后悔的宝藏资源!
第一题:LOL买英雄
题目描述
用金币购买英雄联盟英雄的最大个数,要求给出具体方案。
输入描述
给出每个英雄联盟的价格和持有的金币数。
输出描述
给出具体的购买方案。
样例
输入
[2,1,3,4,5]
10
输出
[2,1,3,4]
思路
核心代码模式,背包问题,动态规划解决。dp[i][j]表示背包容量为j时,从前i个物品能获得的最大价值。
初始化动态规划数组。将dp数组的第一行和第一列都初始化为0,表示没有物品或者背包容量为0时,能获得的最大价值都为0。
递推过程中,我们考虑是否将第i个英雄放入背包中。如果放入第i个英雄,则当前背包容量会减少weight[i-1