当前位置: 首页 > 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/a/318786.html

相关文章:

  • Android Studio更新成2024.1.2版本后旧项目Gradle配置问题
  • WLAN消失或者已连接但是访问不了互联网
  • C 语言 【模拟实现内存库函数】
  • Mac intel 安装IDEA激活时遇到问题 jetbrains.vmoptions.plist: Permission denied
  • uniCloud云对象调用第三方接口,根据IP获取用户归属地的免费API接口,亲测可用
  • 《C++在金融领域的技术革命:高效、安全与创新的融合》
  • 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让文档“开口说话“