优选算法_模拟_提莫攻击_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;//最后一次中毒一定不会重置
    }
};
相关推荐
蜗牛互联网25 分钟前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
郝学胜_神的一滴29 分钟前
游戏引擎原理与实践 04:拆解引擎基础系统与内存管理
c++·游戏
wanderist.35 分钟前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数
java·数据结构·算法
All for pursuit.1 小时前
【设计-1】208.实现Trie (前缀树)
数据结构·c++·算法·leetcode
weixin_307779131 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
ttwuai1 小时前
Go后台管理系统开源项目:4个官方仓库怎么追溯和核验
开发语言·golang·开源
谢亮_vipxieliang1 小时前
Go Worker Pool 设计——从原理到生产级实现
开发语言·后端·golang
青少儿编程课堂1 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
倒头就睡的小比特1 小时前
C++多态
c++
光影少年2 小时前
为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?
前端·javascript·算法