您现在的位置是:首页 > 正文

(Medium) Teemo Attacking - LeetCode

2024-01-30 21:39:59阅读 0

Description:

In LOL 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:

  1. You may assume the length of given time series array won't exceed 10000.
  2. 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.

 

Accepted
39.3K
Submissions
74.6K

Solution:

class Solution {
    public int findPoisonedDuration(int[] timeSeries, int duration) {  
        
        if(timeSeries ==null || timeSeries.length ==0){
            
            return 0;
        }
        
        int total = duration; 
        
        boolean awake = false;
        
        int wake_up_time = timeSeries[0]+duration;
        
        for(int i =1; i <timeSeries.length; i++){
            //System.out.println("check1 "+ i);
            
            if(wake_up_time<=timeSeries[i]){
                awake = true; 
            }   
            else{
                awake = false;
            }
            
           // System.out.println("Check2 "+ timeSeries[i]+" "+awake);
            
            if(awake){
            
                
                total = total +duration;
                
                wake_up_time = timeSeries[i]+duration;
            
                //System.out.println("Check3 "+ total+" "+ wake_up_time);
            }
            else{
                
                int tmp = timeSeries[i]+duration - wake_up_time; 
                
                total = total +tmp; 
                
                wake_up_time = timeSeries[i]+duration;
                //total = total +duration-(timeSeries[i]-timeSeries[i-1]);
            }
        }
        
        return total;
    }
}

 

转载于:https://www.cnblogs.com/codingyangmao/p/11460446.html

网站文章

  • SpringMVC中@ModelAttribute和@SessionAttributes注解的使用

    SpringMVC中@ModelAttribute和@SessionAttributes注解的使用

    1.@ModelAttribute注解的使用@ModelAttribute注解在两种地方可以使用从这里我们可以看到该注解可以用在参数上也可以用在方法体上。现在我们就来讲解这两种方式。方式一,该注解用在方法体上:在方法定义上使用 @ModelAttribute 注解:Spring MVC在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方...

    2024-01-30 21:39:52
  • linux基础命令-rm 最新发布

    在 Linux 操作系统中,rm 是一个强大的命令,用于删除文件和目录。它允许用户在文件系统中进行清理和维护操作,但同时也需要谨慎使用,因为删除的文件和目录不可恢复。在使用 rm 命令时,请注意核实您...

    2024-01-30 21:39:44
  • c++语言将字符串逆序输出,C++实现string类字符串单词的逆序输出

    c++语言将字符串逆序输出,C++实现string类字符串单词的逆序输出

    利用c++实现string类字符串单词的逆序输出,并改变源字符串的大小写。#include#include#includeusing namespace std;string StringReverseWord(string &s){int len = s.length();if (len == 0)//空字符串return s;int n = 0;while (s[n++] == ' '...

    2024-01-30 21:39:14
  • jep290涉及jdk版本_JDK 12 – JEP 325开关表达式

    jep290涉及jdk版本 JDK 12已于2019年3月19 日上线GA,继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说,有趣的功能之一是“ JEP 325开关表达式 ”,它可以作为预览功能使用。 此处定义的预览功能是: 预览语言或VM功能是Java SE平台的一项新功能,该功能已完全指定,完全实现但不是永久性的。 JDK功能发布中提供了该功能...

    2024-01-30 21:39:07
  • React 知识点整理

    React 知识点整理

    React 知识点整理

    2024-01-30 21:39:00
  • 通俗易懂设计模式解析——抽象工厂模式

    通俗易懂设计模式解析——抽象工厂模式

    前言  前面介绍了单例模式及工厂模式相关知识及示例,今天主要介绍的是抽象工厂模式,上一篇我们讲了工厂模式。将创建对象的任务委托给子类,延迟创建。解决工厂中责任的划分。实现具体工厂与产品之间的一一对应。解决的是”单个对象”的问题。  华为工厂除了生产华为手机之外。肯定也会有原件配套的充电线和耳机。这时工厂对应的是一套产品该如何解决了呢?显然不再适合使用工厂模式了。今天将的抽象工厂模...

    2024-01-30 21:38:25
  • python调用程序call_Python下的subprocess.call()使用和注意事项

    Python虽然有许多优秀的第三方库,但在实际使用的时候免不了使用一些cmd调用的程序,毕竟这类程序比较底层,更快、也更稳定。比如GDAL、FFmpeg、 ImageMagick等。利用Python调...

    2024-01-30 21:38:18
  • 详解TCP/IP协议栈

    详解TCP/IP协议栈

    之前对网络各层作用的了解一直都比较模糊,对各个协议的作用也不甚清楚,最近看到了一篇对TCP/IP协议栈讲解比较清晰的博文,特地转载过来。什么是TCP/IP协议栈TCP/IP 协议栈是一系列网络协议的总...

    2024-01-30 21:37:44
  • SpringBoot devtools热部署

    SpringBoot devtools热部署

    一、pom.xml添加依赖二、修改idea默认配置三、测试是否生效一、pom.xml添加依赖&lt;dependencies&gt; &lt;!-- 基础组件--&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId...

    2024-01-30 21:37:38
  • 实验四

    PC端配置:配置ip地址、网关。交换机配置:system-viewvlan 30vlan 40quitinterface gi 1/0/1port link-type accessport access vlan 30interface gi 1/0/2port link-type accessport access vlan 40quitint...

    2024-01-30 21:37:32