【优选算法必刷100题】第39-40题(模拟):替换所有问号,提莫攻击

【优选算法必刷100题】第39-40题(模拟):替换所有问号,提莫攻击

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

《Git深度解析》:版本管理实战全解

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

39.替换所有问号

算法原理(模拟):

思路:

模拟解法代码(C++):

博主手记(字体还请见谅哈):

40.提莫攻击

解法(模拟+分情况讨论):

算法思路:

C++算法代码:

博主手记(字体还请见谅哈):

总结:


前言:

聚焦算法题实战,系统讲解三大核心板块:“精准定位最优解”——优选算法,“简化逻辑表达,系统性探索与剪枝优化”——递归与回溯,“以局部最优换全局高效”——贪心算法,讲解思路与代码实现,帮助大家快速提升代码能力

39.替换所有问号

题目链接:

1576. 替换所有的问号 - 力扣(LeetCode)

题目描述:

题目示例:

算法原理(模拟):

思路:

就是模拟这个过程就行。从前往后遍历整个字符串,找到问号之后,就用a~z的每一个字符去尝试替换即可

模拟解法代码(C++):

class Solution { public: string modifyString(string s) { int n=s.size(); for(int i=0;i<n;i++) { if(s[i]=='?')//替换 { for(char ch='a';ch<='z';ch++) { //当'?'在第一位或者字符不与前面元素相同&&当'?'在最后一位或者字符不与后面元素相同 if((i==0||s[i-1]!=ch)&&(i==n-1||s[i+1]!=ch)) { s[i]=ch; break; } } } } return s; } };
博主手记(字体还请见谅哈):

40.提莫攻击

题目链接:

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

题目描述:

题目示例:

解法(模拟+分情况讨论):

算法思路:

模拟+分情况讨论。
计算相邻两个时间点的差值:

  • 如果差值大于等于中毒时间,说明上次中毒可以持续 duration 秒。
  • 如果差值小于中毒时间,那么上次的中毒只能持续两者的差值

C++算法代码:

代码一:

class Solution { public: int findPoisonedDuration(vector<int>& timeSeries, int duration) { int n=timeSeries.size(),ret=0; for(int i=1;i<n;i++) { if(timeSeries[i]-timeSeries[i-1]<duration) ret+=timeSeries[i]-timeSeries[i-1]; else ret+=duration; } //加上最后一次攻击的中毒时间 return ret+duration; } };
博主手记(字体还请见谅哈):

总结:

结尾:替换所有问号(LeetCode 1576)使用模拟方法遍历字符串,遇到问号时用a-z字符替换,确保不与相邻字符重复;提莫攻击(LeetCode 495)通过分情况讨论计算中毒总时长:若攻击间隔大于中毒时间则累加duration,否则累加实际间隔时间

Read more

部署Qwen3-VL-32b的踩坑实录:多卡跑大模型为何vLLM卡死而llama.cpp却能“大力出奇迹”?

部署Qwen3-VL-32b的踩坑实录:多卡跑大模型为何vLLM卡死而llama.cpp却能“大力出奇迹”?

踩坑实录:多卡跑大模型Qwen-VL,为何vLLM模型加载卡死而llama.cpp奇迹跑通还更快? 前言:部署经历 针对 Qwen2.5-32B-VL-Instruct 满血版模型的部署实战。 手头的环境是一台配备了 4张 NVIDIA A30(24GB显存) 的服务器。按理说,96GB的总显存足以吞下 FP16 精度的 32B 模型(约65GB权重)。然而,在使用业界标杆 vLLM 进行部署时,系统却陷入了诡异的“死锁”——显存占满,但推理毫无反应,最终超时报错。 尝试切换到 Ollama(底层基于 llama.cpp),奇迹发生了:不仅部署成功,而且运行流畅。这引发了我深深的思考:同样的硬件,同样模型,为何两个主流框架的表现天差地别? 本文将围绕PCIe通信瓶颈、Tensor Parallelism(张量并行) 与 Pipeline

By Ne0inhk
Copilot vs Claude Code终极对决哪个会更好用呢?

Copilot vs Claude Code终极对决哪个会更好用呢?

📊 核心差异:一句话概括 * GitHub Copilot:你的智能代码补全器 * Claude Code:你的全栈AI开发伙伴 🎯 一、产品定位对比 GitHub Copilot:专注代码补全 <TEXT> 定位:AI结对编程助手 核心理念:让你写代码更快 核心功能:基于上下文的代码建议和补全 收费模式:个人$10/月,企业$19/用户/月 Claude Code:全栈开发加速器 <TEXT> 定位:AI驱动的开发平台 核心理念:提升整个开发流程效率 核心功能:代码生成+架构设计+调试+部署 收费模式:按token计费,灵活弹性 ⚡ 二、核心技术对比

By Ne0inhk
【Git】一篇文章带你入门Git

【Git】一篇文章带你入门Git

1. 初识 Git 1.1 Git 是什么? Git 是一个开源的分布式版本控制系统,用于高效地跟踪和管理项目代码的变更历史(不仅仅是代码,还有其它格式也是可以的~) 1.2 为什么要有 Git 在学习或者是工作的时候,比如编写各种文档,为了防止文档丢失,更改失误,我们不得不复制出一个副本,保留历史记录,方便找回历史记录,比如: “设计文档-v1” “设计文档-v2” “设计文档-v3” “设计文档-确定版” “设计文档-最终版” 每个版本有各自的内容,但最终会只有⼀份文档是需要被使用的,在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,文件就越来越多,不仅文件多,更重要的是,随着版本数量的不断增多,我们可能记不太清每一个版本具体修改的哪些内容,文档如此,我们编写的项目代码也如此! 那么,如何解决呢? 答:版本控制器 ,记录每次修改以及版本迭代的一个管理系统,目前,最主流的版本控制器就是 Git,

By Ne0inhk
【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏: AIGC |ChatGPT 文章目录 * 💯前言 * 💯冷启动数据的作用 * 冷启动数据设计 * 💯多阶段训练的作用 * 阶段 1:冷启动微调 * 阶段 2:推理导向强化学习(RL) * 阶段 3:拒绝采样与监督微调(SFT) * 阶段 4:多场景强化学习 * 💯代码示例:冷启动数据与多阶段训练的实现 * 1. 冷启动微调阶段 * 作用与应用: * 2. 推理导向的强化学习阶段 * 作用与应用: * 3. 拒绝采样与监督微调阶段 * 作用与应用: * 4. 多场景强化学习 * 作用与应用: * 总体流程 * DeepSeek 中的应用 * 💯总结 💯前言 在人工智能领域,深度学习模型的训练和优化往往需要大量的标注数据和计算资源。然而,面对复杂任务时,即使是最先进的技术和大量的训练数据也未必能够保证模型的最优表现。DeepSeek

By Ne0inhk