【贪心算法】在有盾牌的情况下能通过每轮伤害的最小值(亚马逊笔试题)

思路:

采用贪心算法,先计算出来所有的伤害值,然后再计算每轮在使用盾牌的情况下能减少伤害的最大值,最后用总的伤害值减去能减少的最大值就是最少的总伤害值

java 复制代码
public static long getMinimumValue(List<Integer> power, int armor) {
    long totalDamage = 0;
    int maxReduction = 0;
    for (int p : power) {
        totalDamage += p;
        // 护甲在该轮能减少的伤害
        int reduction = Math.min(p, armor);
        if (reduction > maxReduction) {
            maxReduction = reduction;
        }
    }
    // 总伤害 - 最大减少量 + 1(保证血量>0)
    return totalDamage - maxReduction + 1;
}
相关推荐
Future_yzx1 小时前
算法基础学习——快排与归并(附带java模版)
学习·算法·排序算法
所以遗憾是什么呢?3 小时前
【题解】Codeforces Round 996 C.The Trail D.Scarecrow
数据结构·算法·贪心算法
qystca4 小时前
【16届蓝桥杯寒假刷题营】第2期DAY4
数据结构·c++·算法·蓝桥杯·哈希
JNU freshman4 小时前
线段树 算法
算法·蓝桥杯
英国翰思教育4 小时前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
人类群星闪耀时5 小时前
寻找两个正序数组的中位数:分治法与二分查找的结合
算法·leetcode
এ旧栎5 小时前
蓝桥与力扣刷题(240 搜索二维矩阵||)
算法·leetcode·矩阵·学习方法
Xzh04235 小时前
c语言网 1127 尼科彻斯定理
数据结构·c++·算法
qystca6 小时前
【16届蓝桥杯寒假刷题营】第2期DAY5
c++·算法·蓝桥杯·贡献度
cccc楚染rrrr8 小时前
240. 搜索二维矩阵||
java·数据结构·线性代数·算法·矩阵