《算法闯关指南:优选算法--模拟》--39.替换所有问号,40.提莫攻击

《算法闯关指南:优选算法--模拟》--39.替换所有问号,40.提莫攻击
在这里插入图片描述

🔥草莓熊Lotso:个人主页
❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:

在这里插入图片描述

文章目录


前言:

聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“局部最优”到“全局最优”的思路,解决区间调度等问题 内容以题带点,讲解思路与代码实现,帮助大家快速提升代码能力。

39.替换所有问号

题目链接

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

题目描述

在这里插入图片描述


题目示例

在这里插入图片描述

解法(模拟):

算法思路:

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

C++算法代码:

classSolution{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||ch!=s[i-1])&&(i==n-1||ch!=s[i+1])){ s[i]=ch;break;}return s;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述
在这里插入图片描述

40.提莫攻击

题目链接

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

题目描述:

在这里插入图片描述

题目示例:

在这里插入图片描述

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

算法思路:

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

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

还可以这样想,我们每次加上 min(duration,差值) 就行。

C++算法代码:

代码一:

classSolution{public:intfindPoisonedDuration(vector<int>& timeSeries,int duration){int n=timeSeries.size(),effect=0;for(int i=1;i<n;i++){int sub=timeSeries[i]-timeSeries[i-1];if(sub>=duration) effect+=duration;else effect+=sub;}return effect+duration;}};

代码二:

classSolution{public:intfindPoisonedDuration(vector<int>& timeSeries,int duration){int n=timeSeries.size(),effect=0;for(int i=1;i<n;i++){int sub=timeSeries[i]-timeSeries[i-1]; effect+=min(sub,duration);}//记得加最后一次的return effect+duration;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述


在这里插入图片描述

结尾:

🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点: 👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长 ❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量 ⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用 💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑 🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解 技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标! 

结语:本文分享了两道LeetCode算法题的解题思路与C++实现:替换所有问号(1576题):通过遍历字符串,对每个问号使用a-z字符尝试替换,确保不与前后字符重复。提莫攻击(495题):计算中毒总时间,通过比较相邻攻击时间差与中毒持续时间,取较小值累加。两题均采用模拟方法解决,代码简洁高效。笔记包含详细思路分析和可视化解题过程,适合算法学习者参考。

✨把这些内容吃透超牛的!放松下吧✨ʕ˘ᴥ˘ʔづきらど

Read more

服务器运维(三十四)小程序web访问慢ssl优化—东方仙盟

现代网络加速实战:TLS 版本与小程序慢加载优化指南 (东方仙盟 × 科技现实 融合版) 第一章 TLS 版本导致小程序慢、HTTPS 慢、证书慢 (仙盟视角:一纸旧契,拖慢整条仙路) 很多开发者都会遇到一个现象:小程序明明内容很少、接口报文很小,打开却要转圈很久;网页第一次加载特别慢,切换页面又卡一下;同样的服务器,别人秒开,自己却要等好几秒。 90% 的情况,不是代码问题,不是带宽问题,而是 TLS 版本不对。 * TLS 1.0 / 1.1 是老旧协议,握手步骤多、来回次数多 * 协议协商过程本身就会产生延迟 * 弱网、小程序 WebView、老旧设备下,延迟会被放大 * 同时开启太多协议版本(1.0+1.1+

By Ne0inhk
前后端分离架构(Vue 前端 + Java/SpringBoot 后端)项目部署 || 全服务器部署(宝塔面板)全流程 || 前端Netlify + 后端服务器 部署对比

前后端分离架构(Vue 前端 + Java/SpringBoot 后端)项目部署 || 全服务器部署(宝塔面板)全流程 || 前端Netlify + 后端服务器 部署对比

一、 部署需要分「前端」「后端」「数据库」三个部分 优先选低成本 + 易操作的组合: * 前端:免费静态托管平台(Netlify/Vercel,无需服务器) * 后端:云服务器(学生机,每月 9 元起) * 数据库:云服务器内置 MySQL(或用免费云数据库) 下文的部署采用的是全服务器部署方式,即前后端都部署到云服务器上 二、第一步:部署前端(Vue 项目,免费 + 5 分钟完成) 1. 本地打包前端代码 在 Vue 项目根目录执行命令,生成静态文件目录dist: npm run build 2. 部署到 Netlify(免费、自动构建、带 HTTPS) (如果是全服务器部署,

By Ne0inhk

不用写复杂前端,5 分钟上线 AI 模型交互界面:Gradio 安装使用全攻略 + 特性与适用场景解析

【个人主页:玄同765】 大语言模型(LLM)开发工程师|中国传媒大学·数字媒体技术(智能交互与游戏设计) 深耕领域:大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调 技术栈:Python / LangChain/RAG(Dify+Redis+Milvus)| SQL/NumPy | FastAPI+Docker ️ 工程能力:专注模型工程化部署、知识库构建与优化,擅长全流程解决方案         专栏传送门:LLM大模型开发 项目实战指南、Python 从真零基础到纯文本 LLM 全栈实战、 从零学 SQL + 大模型应用落地、大模型开发小白专属:从 0 入门 Linux&Shell       「让AI交互更智能,让技术落地更高效」 欢迎技术探讨/项目合作!

By Ne0inhk

Dify Web 前端二次开发(隐藏探索功能 + 替换 Logo)

核心修改内容 1. 隐藏导航栏「探索」功能(图标 + 文字按钮); 2. 将默认 Dify Logo 替换为自定义 FDAI Logo(PNG 格式)。 (一)隐藏「探索」功能完整过程 1. 定位目标组件 探索功能对应的组件文件路径:web/app/components/header/explore-nav/index.tsx(组件名:ExploreNav),该组件被嵌套在 Header 组件中渲染,无需修改布局文件 app/(commonlayout)/layout.tsx。 2. 首次尝试:仅删除图标(未彻底隐藏) * 操作:删除组件内图标渲染代码 { activated ? <RiPlanetFill />

By Ne0inhk