优选算法_模拟_提莫攻击_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;//最后一次中毒一定不会重置
    }
};
相关推荐
玛丽莲茼蒿2 小时前
LeetCode hot100【相交链表】【简单】
算法·leetcode·职场和发展
罗湖老棍子2 小时前
They Are Everywhere(Codeforces- P701C)
算法·滑动窗口·codeforce题解
wen__xvn2 小时前
力扣模拟题刷题
算法·leetcode
bbbb3652 小时前
算法复杂度与能耗关系的多变量分析研究的技术7
算法
不要秃头的小孩2 小时前
力扣刷题——111.二叉树的最小深度
数据结构·python·算法·leetcode
.select.2 小时前
c++ 移动赋值/移动构造函数
开发语言·c++
wutang0ka2 小时前
LeeCode HOT 100 104.二叉树的最大深度
算法
我是鶸2 小时前
secml-malware python library 源码分析及实践
开发语言·python
散峰而望2 小时前
【基础算法】从入门到实战:递归型枚举与回溯剪枝,暴力搜索的初级优化指南
数据结构·c++·后端·算法·机器学习·github·剪枝