《算法闯关指南:优选算法--模拟》--43.数青蛙

《算法闯关指南:优选算法--模拟》--43.数青蛙
在这里插入图片描述

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


🎬 博主简介:

在这里插入图片描述

文章目录


前言:

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

43. 数青蛙

题目链接

1419. 数青蛙 - 力扣(LeetCode)

题目描述

在这里插入图片描述


题目示例

在这里插入图片描述

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

算法思路:

模拟青蛙的叫声。

  • 当遇到 'r' 'o' 'a' 'k' 这四个字符的时候,我们要去看看每一个字符对应的前驱字符,有没有青蛙叫出来。如果有青蛙叫出来,那么就让这个青蛙接下来喊出这个字符;如果没有,直接返回 -1
  • 当遇到 ‘c’ 这个字符的时候,我们去看看 ‘k’ 这个字符有没有青蛙叫出来。如果有,就让这个青蛙继续去 ‘c’ 这个字符;如果没有的话,就重新整一个青蛙出来

C++算法代码:

classSolution{public:intminNumberOfFrogs(string croakOfFrogs){ string s="croak";int n=s.size(); unordered_map<char,int> index;//记录字符映射下标关系 vector<int>hash(n);//数组模拟哈希表for(int i=0;i<n;i++) index[s[i]]=i;for(auto& ch:croakOfFrogs){if(ch=='c'){if(hash[n-1]!=0) hash[n-1]--; hash[0]++;}else{int t=index[ch];if(hash[t-1]==0)return-1; hash[t-1]--,hash[t]++;}}for(int i=0;i<n-1;i++)if(hash[i]!=0)return-1;return hash[n-1];}};

算法总结&&笔记展示:

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

在这里插入图片描述


在这里插入图片描述

结尾:

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

结语:本文探讨了LeetCode 1419题"数青蛙"的解法,通过模拟青蛙叫声过程,分析字符序列croak的匹配逻辑。算法使用哈希表记录字符位置,并动态维护各阶段字符计数:当遇到c时复用已完成k的青蛙或新增青蛙;其他字符则需前驱字符存在才能继续。最后检查未完成序列的青蛙数量。解法高效且思路清晰。

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

Read more

深度评 Mastering GitHub Copilot 课程:Copilot 版本差异(免费 / Pro)的讲解适配

Copilot 版本差异概述 GitHub Copilot 提供免费版和 Pro 版(现整合为 GitHub Copilot Individual 和 Business 计划),核心差异体现在功能权限、使用场景及代码生成能力上。 免费版(原学生/开源项目版) * 适用对象:学生、开源贡献者(需验证资格)。 * 功能限制:基础代码补全、单行/多行建议,但响应速度可能受限。 * 使用场景:仅支持个人非商业项目,部分私有仓库可能无法使用。 Pro 版(Individual/Business) * 增强功能:优先访问新特性(如 Copilot Chat)、更快的响应速度、支持私有仓库。 * 商业许可:允许商业代码生成,符合企业合规要求。 * 团队协作:Business 版提供团队管理工具,如使用量统计和策略控制。 课程讲解适配建议

By Ne0inhk

使用Docker Compose快速启动LLama-Factory,实现多卡GPU并行训练

使用Docker Compose快速启动LLama-Factory,实现多卡GPU并行训练 在大模型落地日益迫切的今天,如何让一个预训练语言模型真正“听懂”特定领域的指令,成为摆在开发者面前的核心问题。微调(Fine-tuning)是关键路径,但现实往往令人却步:环境依赖错综复杂、PyTorch版本与CUDA不兼容、多GPU配置像走钢丝……更别说还要处理数据格式、LoRA参数调优和显存溢出这些工程难题。 有没有一种方式,能让人从“运维工程师”的角色中解脱出来,专注在模型本身?答案是肯定的——通过 Docker Compose + LLama-Factory 的组合,我们完全可以做到“一行命令启动完整微调系统”,甚至在多张GPU上自动开启并行训练。这套方案不仅适合个人开发者快速验证想法,也足以支撑企业级AI中台的敏捷开发流程。 LLama-Factory 并非简单的脚本集合,而是一个真正意义上的“一站式”框架。它统一抽象了 LLaMA、Qwen、ChatGLM 等上百种主流模型的加载逻辑,内置对 LoRA、QLoRA、全参数微调的支持,并提供了直观的 WebUI 界面。

By Ne0inhk
Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家 在鸿蒙跨平台应用执行大型语言模型(LLM)的流式交互(如实时获取大模型生成的结构化 JSON 数据、处理非完整的 JSON 片段解析或是实现一个具备极致反馈速度的 AI 驱动表单)时,如果依赖传统的 jsonDecode,极易在处理“不完整字符串(Chunk)”、“语法中断”或“非预期的文本噪声”时陷入解析异常死循环。如果你追求的是一种完全对齐流式解析规范、支持实时恢复 JSON 结构且具备极致容错性能的方案。今天我们要深度解析的 llm_json_stream—

By Ne0inhk
在昇腾NPU上跑Llama 2模型:一次完整的性能测试与实战通关指南

在昇腾NPU上跑Llama 2模型:一次完整的性能测试与实战通关指南

目录 * 在昇腾NPU上跑Llama 2模型:一次完整的性能测试与实战通关指南 * 引言:从“为什么选择昇腾”开始 * 第一幕:环境搭建——好的开始是成功的一半 * 1.1 GitCode Notebook 创建“避坑指南” * 1.2 环境验证:“Hello, NPU!” * 第二幕:模型部署——从下载到运行的“荆棘之路” * 2.1 安装依赖与模型下载 * 2.2 核心部署代码与“坑”的化解 * 第三幕:性能测试——揭开昇腾NPU的真实面纱 * 3.1 严谨的性能测试脚本 * 3.2 测试结果与分析 * 第四幕:性能优化——让Llama跑得更快 * 4.1 使用昇腾原生大模型框架 * 4.

By Ne0inhk