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

思路:

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

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;
}
相关推荐
颜如玉1 小时前
位运算技巧总结
后端·算法·性能优化
冷月半明1 小时前
时间序列篇:Prophet负责优雅,LightGBM负责杀疯
python·算法
秋难降2 小时前
聊聊 “摸鱼式” 遍历 —— 受控遍历的小心机
数据结构·算法·程序员
等风来不如迎风去2 小时前
【动态规划】309. 买卖股票的最佳时机含冷冻期及动态规划模板
算法·动态规划
小xin过拟合5 小时前
day20 二叉树part7
开发语言·数据结构·c++·笔记·算法
lxmyzzs7 小时前
【图像算法 - 23】工业应用:基于深度学习YOLO12与OpenCV的仪器仪表智能识别系统
人工智能·深度学习·opencv·算法·计算机视觉·图像算法·仪器仪表识别
Learn Beyond Limits7 小时前
Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
人工智能·深度学习·神经网络·算法·机器学习·分类·吴恩达
张较瘦_7 小时前
[论文阅读] 软件工程 | GPS算法:用“路径摘要”当向导,软件模型检测从此告别“瞎找bug”
论文阅读·算法·bug
2401_858286118 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
张同学的IT技术日记8 小时前
【奇妙的数据结构世界】用图像和代码对队列的使用进行透彻学习 | C++
算法