美文网首页
(C++实现)笔试题:提莫问题

(C++实现)笔试题:提莫问题

作者: JLGao的简书 | 来源:发表于2019-11-15 11:39 被阅读0次

1. 问题描述:在撸啊撸世界中,提莫的普通攻击(吹箭)自带箭毒伤害,每一次吹箭击中敌人(以下假想敌为艾希),艾希都会受到持续特定时间的箭毒伤害。但箭毒伤害不会叠加,只会把之前的持续时间结束并立即刷新开始计算持续时间。问题是给定一个提莫攻击的时间点组成的数组timeSeries,以及固定的箭毒持续时间duration,写出算法计算出艾希一共会受到多少时间的箭毒伤害。
例子:
输入:[1, 2, 4, 6], 1
输出:4
解释:提莫在时间点1攻击艾希,箭毒生效并持续了1秒到达攻击时间点2时,箭毒刷新并重计时2秒,因此一共会受到3秒伤害。
2. C++代码实现

#include <iostream>
#include <vector>
using namespace std;

int calculatePoisonedDuration(vector<int> timeSeries, int dur){
    if(timeSeries.empty() || timeSeries.size()==0 || dur <= 0)
        return -1;
    int poisonedTime = 0;
    int start = timeSeries[0];
    for(int i = 1; i < timeSeries.size(); i ++){
        if(timeSeries[i] < timeSeries[i-1])
            return -1;
        else if(timeSeries[i] >= start + dur)
            poisonedTime += dur;
        else
            poisonedTime = poisonedTime + dur - start;
        start = timeSeries[i];
    }
    poisonedTime += dur;
    return poisonedTime;
}

int main(){
    vector<int> timeSeries{1, 2, 4, 6};
    int duration = 1;
    int poisonedTimes = calculatePoisonedDuration(timeSeries, duration);
    cout << poisonedTimes << endl;
    return 0;
}

相关文章

  • (C++实现)笔试题:提莫问题

    1. 问题描述:在撸啊撸世界中,提莫的普通攻击(吹箭)自带箭毒伤害,每一次吹箭击中敌人(以下假想敌为艾希),艾希都...

  • 彼岸奈何.

    【彼岸奈何】 词条/古风. 文/莫落血棠. 序: -提一笔,画眉眼如画, -提一笔,写江山繁华, -提一笔,你眉眼...

  • C++基础

    c++面试题

  • 滴滴校招-寻找丑数-c++

    面试题之丑数的C++实现求解(孤陋寡闻了,才知道丑数这么high的东东)

  • 莫提莫

    十月 一个崭新的月份,从第一次求职失败到经验总结,最根本的原因就是过于自信与内心的无所谓。 十月份 毫无疑问带来的...

  • 2_11基数排序

    C++的queue实现 C++ vector 实现 python 实现

  • Linux下基于C++的TCP连接demo代码分享(C++,Li

    #C++实现TCP连接 @(C++代码)[网络编程, tcp, C++, C++实现] server.cpp: #...

  • 提莫...

  • 莫提

    好是云山韶濩音, 便好携家住白云。 文江学海思济航, 清风习习重凄凉。 青楼珠箔天之涯, 从来从去九天间。 争多逐...

  • 提莫

网友评论

      本文标题:(C++实现)笔试题:提莫问题

      本文链接:https://www.haomeiwen.com/subject/kmwjictx.html