43.打怪兽 - 图1

题目概述

题目详情(点我)

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

输入:
分别输入三只怪兽的血量

输出:
输出打死三只怪兽的最小代价

题解

解题方法

  • 绝对值

算法知识

  • 贪心算法

    • 时间复杂度: 1
    • 空间复杂度: 1

解题思路

审题

  • int a,b,c : 分别为三只怪兽的血量
  • 打死第一只怪兽代价为0
  • 其余怪兽的的代价 = 当前怪兽的血量 - 上一个怪兽的血量的绝对值

题目要求

  • 打死三只怪兽的最小代价

思路

  • 依题意得: 要想获得最小的代价,打死怪兽的顺序就必须为
    血量最少 - 血量第二 - 血量最多 或
    血量最多 - 血量第二 - 血量最少
    此时最小值为 : 最大值 - 最小值

步骤

  1. 判断血量最多和血量最少的怪兽的血量
  2. 代价 = 血量最多的怪兽的血量-血量最少的怪兽的血量
  3. 返回代价