495. Teemo Attacking

In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned condition. Now, given the Teemo's attacking ascending time series towards Ashe and the poisoning time duration per Teemo's attacking, you need to output the total time that Ashe is in poisoned condition.

You may assume that Teemo attacks at the very beginning of a specific time point, and makes Ashe be in poisoned condition immediately.

Example 1:

Input: [1,4], 2
Output: 4
Explanation: At time point 1, Teemo starts attacking Ashe and makes Ashe be poisoned immediately.
This poisoned status will last 2 seconds until the end of time point 2.
And at time point 4, Teemo attacks Ashe again, and causes Ashe to be in poisoned status for another 2 seconds.
So you finally need to output 4.

Example 2:

Input: [1,2], 2
Output: 3
Explanation: At time point 1, Teemo starts attacking Ashe and makes Ashe be poisoned.
This poisoned status will last 2 seconds until the end of time point 2.
However, at the beginning of time point 2, Teemo attacks Ashe again who is already in poisoned status.
Since the poisoned status won't add up together, though the second poisoning attack will still work at time point 2, it will stop at the end of time point 3.
So you finally need to output 3.

Note:

  • You may assume the length of given time series array won't exceed 10000.
  • You may assume the numbers in the Teemo's attacking time series and his poisoning time duration per attacking are non-negative integers, which won't exceed 10,000,000.

读题

题干比较长,看起来比较唬人,其实就是一个时间间隔的问题,只要看两次攻击的时间间隔就行了,如果时间间隔大于等于duration时间就加上一个完整的duration,如果小于duration,总的时间就加上时间间隔

题解

public class Solution495 {
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int result = 0 ;
        if(timeSeries.length == 0) return 0;
        if(timeSeries.length == 1) return duration;
        for(int i=0;i<timeSeries.length-1;i++){
            if(timeSeries[i+1]-timeSeries[i]>=duration)
                result += duration;
            else
                result += timeSeries[i+1]-timeSeries[i];
        }
        return result+duration;
    }

    public static void main(String[] args) {
        int result = new Solution495().findPoisonedDuration(new int[]{1,4,7,8}, 3);
        System.out.println(result);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 家庭馅饼,从小姐弟两个,我和弟弟相差两岁,在家里很多事情,我都是很乖,很听话的,也很认真的学习,见到人只是笑笑,不...
    孙苹阅读 161评论 0 0
  • 基本概念 数据 数据:是描述客观事物的符号,使计算集中可以操作的对象,使能够被计算机识别,并输入给计算机处理的符号...
    zhengwenhao阅读 363评论 0 0
  • 一、曲线绘制 context.arc(centerx,centery,radius,startingAngle,e...
    开心糖果的夏天阅读 653评论 3 8
  • 三代同堂家庭可能会使儿童的气质类型变为难养型。这可能是因为在这种家庭中,儿童大多是受到父母及祖父母或外祖父母的双重...
    吴悦溪阅读 249评论 0 0
  • 习惯了忙碌的生活,习惯了烦躁的课堂,习惯了一成不变,习惯了人群的涌动,习惯了在这车水马龙、人世喧闹的社会中要虚伪...
    瘦到_随风跑阅读 2,226评论 0 2