开发者社区> 问答> 正文

面试遇到一个问题,求大佬帮忙解答下。

现在有 3 只怪兽,他们的都有自己的血量a,b,c(1<=a,b,c<=100),当Tom 打死第一怪兽的时候花费的代价为 0,其余的怪兽的代价为当前的怪兽的血量减去上一个怪兽的血量的绝对值。问 Tom 打死这些怪兽所需要的最小代价 ? 分别输入三只怪兽的血量;输出打死三只怪兽的最小代价。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 15:39:53 337 0
1 条回答
写回答
取消 提交回答
  • 应该使用贪心算法完成,策略是每次打怪兽都选择代价最小的一只。由于第一次打怪兽的花费为 0,所以第一次可以打血量最小的(最大的也可以),接下来每次选择怪兽的时候就可以选择花费代价最小的。由于每次打怪兽的代价都是:当前怪兽的血量和上一个怪兽的血量的差的绝对值。于是可以得出结论,最小代价为所有怪兽血量的最大值减最小值。 则输入:2,5,8
    输出:6。

    2021-12-23 18:14:53
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
程序员面试宝典 立即下载
用面试官的思维写简历 立即下载
面试常考算法 立即下载