当前位置: 首页 > article >正文

【算法】模拟:(leetcode)495.提莫攻击(easy)

目录

题目链接

题目介绍

解法

代码


 题目链接

495. 提莫攻击 - 力扣(LeetCode)

题目介绍

 解法

模拟 + 分情况讨论。

当寒冰再次中毒时,上次「中毒」是否已经结束。

  • 当上次中毒已经结束了,那么上次「中毒」维持的时间就是 duration;
  • 如果上次中毒还没有结束,由于中毒状态将会重置,所以上次「中毒」维持的时间 = 当前中毒时间 - 上次中毒时间。

所以整体的代码思路:

对题目发起攻击的时间 timeSeries 进行遍历,记当前遍历到 i 位置:

  • 如果 timeSeries[i]−timeSeries[i−1 ]>= duration,说明上次「中毒」已经结束,上次中毒维持的时间是 duration;
  • 否则,说明上次「中毒」还没有结束,上次中毒维持的时间是 timeSeries[i]−timeSeries[i−1]。

注意,因为我们统计的是上次「中毒」维持的时间,不要忘记最后一次中毒将维持 duration秒。所以在遍历结束的时候,结果需要加上 duration!!

题目很简单,只要贯彻模拟的思想就可以解决~

直接看代码


代码

class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        
        int sum = 0;
        for (int i = 0; i < timeSeries.size()- 1; i++)
        {
            int del = timeSeries[i +1] - timeSeries[i];
            //前一次攻击未结束,又发生攻击
            if ( del < duration)
            {
                sum = sum + del;
            }
            else{
                sum += duration;
            }
        }
        
        //小坑
        //最后一次中毒的时间要加上
        sum += duration;
        return sum;
    }
};


http://www.kler.cn/news/318786.html

相关文章:

  • linux服务器自动同步数据库
  • vue3腾讯云实时音视频通话 ui集成方案TUIcallkit
  • 富格林:可信交易筹划在线曝光
  • Python 解析 html
  • 股指期货理论价格计算公式是什么?
  • 【论文】FunAudioLLM:一个旨在增强人类与大型语言模型(LLMs)之间自然语音交互的模型家族
  • 如何在算家云搭建DiffSynth-Kolors-Painter(图像生成)
  • 【ARM】AMBA和总线
  • 详解机器学习经典模型(原理及应用)——随机森林
  • 【JS】严格模式/非严格模式的区别
  • Android 平台使用VIA创建语音交互应用开发指南
  • 更新C语言题目
  • 【linux】gcc makefile
  • 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
  • IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等
  • 通过 OBD Demo 体验 OceanBase 4.3 社区版
  • 关于Hadoop的详细步骤及方案案例
  • python爬虫初体验(三)——将网页数据导出csv和excel文件
  • eCharts扩展图表
  • PDF一键转播客!PDF2Audio让文档“开口说话“
  • 开始学习深度学习-前言
  • 【Docker】Docker快速入门
  • 玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练
  • 【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码
  • 程序包管理器控制台中文乱码
  • 外包功能测试干了4年,技术退步太明显了。。。。。
  • VMWare虚拟机键盘卡顿
  • 主流高级编程语言的推出时间及年份
  • vue脚手架Vue CLI 2.9.6创建工程,并引入elementUI的方法
  • SpringBoot文档管理系统:架构与功能