优选算法_模拟_提莫攻击_C++

一.题目解析

有一个数组,里面每一个数字都表示一个攻击的时间,每一次攻击都会造成duration的中毒效果,求最大的中毒时间,在中毒期间再次攻击会重置中毒时间

算法解析

两次攻击间隔>duration,说明中毒可以完整结束,如果<duration,说明中毒重置就只能造成两攻击间隔时间x的中毒

模拟算法考验代码编写的能力,理解过程要自己编写

二.代码编写

cpp 复制代码
class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        int rettime=0;
        int n=timeSeries.size();
        for(int i=0;i<n;i++)
        {
            if(i==n-1) break;//边界情况
            int x=timeSeries[i+1]-timeSeries[i];
            if(x>=duration)
            {
                rettime+=duration;
            }
            else
            {
                rettime+=x;
            }
        }
        return rettime+duration;//最后一次中毒一定不会重置
    }
};
相关推荐
高亦真5 分钟前
今天是学习嵌入式的第38天
linux·学习·算法
蒸蒸yyyyzwd11 分钟前
cpp 选手备战秋招学习笔记 day36
c++
草莓熊Lotso11 分钟前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
用户695861067271124 分钟前
从源码到加载器:__attribute__((constructor)) / __attribute__((destructor))的跨平台实现原理详解
c++
Joy T27 分钟前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
重生之小比特30 分钟前
【Java SE】抽象类和接口
java·开发语言
传奇开心果编程31 分钟前
【Rust入门知识点学与练】第33课:异步编程入门(async/await)强化
开发语言·学习·rust
传奇开心果编程43 分钟前
【Rust入门知识点学与练】第34课:所有权与借用
开发语言·学习·rust
Zane199444 分钟前
冒泡、选择、插入排序都是O(n²),希尔排序凭什么说自己能更快
算法·排序算法
529宝宝起名网1 小时前
用 Python 开发历史名字查询与起名灵感工具:从古籍人物数据库到名字文化故事生成
开发语言·前端·python