提莫攻击 ---- 模拟算法

题目链接

题目:

分析:

  • 如果两次攻击的时间差是>=中毒的持续时间duration, 那么第一次攻击的中毒时间就是duration
  • 如果两次攻击的时间差是< 中毒的持续时间duration, 那么第一次攻击的持续时间就是这个时间差
  • 假设攻击了n次, 那么我们从第一次攻击开始计算时间差, 那么当我们算到最后一次时, 计算的是前面的n-1次的时间, 那么最后一次攻击, 中毒时间肯定是duration, 所以我们计算结果时, 要加上duration

代码:

java 复制代码
class Solution {
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int ret = 0;
        for(int i = 1; i < timeSeries.length; i++){
            if(timeSeries[i] - timeSeries[i-1] >= duration){
                ret += duration;
            }else{
                ret += timeSeries[i] - timeSeries[i-1];
            }
        }
        return ret + duration;
    }
}
相关推荐
程序猿DD18 分钟前
将 GPU 级性能带到企业级 Java:CUDA 集成实用指南
java·架构
学习2年半19 分钟前
小米笔试题:一元一次方程求解
算法
MATLAB代码顾问22 分钟前
MATLAB绘制多种混沌系统
人工智能·算法·matlab
极客BIM工作室1 小时前
演化搜索与群集智能:五种经典算法探秘
人工智能·算法·机器学习
一成码农1 小时前
JavaSE面向对象(上)
java
qq_574656251 小时前
java-代码随想录第66天|Floyd 算法、A * 算法精讲 (A star算法)
java·算法·leetcode·图论
我是好小孩1 小时前
【Android】六大设计原则
android·java·运维·服务器·设计模式
小霞在敲代码1 小时前
HashMap - 底层原理
java·hashmap
Elsa️7462 小时前
个人项目开发(1):使用Spring Secruity实现用户登录
java·后端·spring