news 2026/4/15 15:20:02

【优选算法必刷100题】第43题(模拟):数青蛙

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【优选算法必刷100题】第43题(模拟):数青蛙

🔥个人主页:Cx330🌸

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

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

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

🌟心向往之行必能至


🎥Cx330🌸的简介:


前言:

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


43. 数青蛙

题目链接:

1419. 数青蛙 - 力扣(LeetCode)

题目描述:

题目示例:

算法原理(模拟):

思路:
  • 当遇到'r' 'o' 'a' 'k'这四个字符的时候,我们要去看看每一个字符对应的前驱字符,有没有青蛙叫出来。如果有青蛙叫出来,那么就让这个青蛙接下来喊出这个字符;如果没有,直接返回-1
  • 当遇到 ‘c’ 这个字符的时候,我们去看看 ‘k’ 这个字符有没有青蛙叫出来。如果有,就让这个青蛙继续去 ‘c’ 这个字符;如果没有的话,就重新整一个青蛙出来
模拟解法代码(C++):
class Solution { public: int minNumberOfFrogs(string croakOfFrogs) { string t="croak"; int n=t.size(); vector<int> hash(n);//用数组来模拟哈希 unordered_map<char,int> index;//【x,x字符对应的下标】 for(int i=0;i<n;i++) index[t[i]]=i; for(auto ch:croakOfFrogs) { if(ch=='c') { if(hash[n-1]!=0) hash[n-1]--; hash[0]++; } else { int i=index[ch]; if(hash[i-1]==0) return -1; hash[i-1]--;hash[i]++; } } for(int i=0;i<n-1;i++) if(hash[i]!=0) return -1; return hash[n-1]; } };

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


结尾:

总结:算法核心是追踪"croak"序列的完成状态:遇到'c'时检查是否有完成叫声的青蛙可复用,否则新增青蛙;遇到其他字符时检查前驱字符是否存在。使用哈希表记录字符位置,数组跟踪各阶段叫声数量。若最终中间状态不为零或无法匹配前驱字符则返回-1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 1:11:25

学术江湖的“智能侠客”:宏智树AI,重新定义论文写作的边界

在学术的江湖里&#xff0c;有人为选题熬红双眼&#xff0c;有人为文献焦头烂额&#xff0c;有人为数据抓耳挠腮&#xff0c;更有人为查重胆战心惊……而今&#xff0c;一位“智能侠客”横空出世——宏智树AI&#xff0c;以“全流程覆盖、数据驱动、真实可信”三大绝技&#xf…

作者头像 李华
网站建设 2026/4/16 10:42:52

宏智树AI:你的学术第二大脑,不止于写作的全能研究伙伴

当开题报告截止日期临近&#xff0c;你需要的不是又一个文字生成器&#xff0c;而是一个真正懂得学术规范、能提供真实文献、甚至能帮你设计实验的智能伙伴。 深夜的实验室里&#xff0c;王明望着电脑屏幕发呆——距离开题报告提交只剩48小时&#xff0c;他的实验数据尚未整理&…

作者头像 李华
网站建设 2026/4/16 10:45:49

【VTK手册025】海量点云渲染利器:vtkPointGaussianMapper 详解与实战

【VTK手册025】海量点云渲染利器&#xff1a;vtkPointGaussianMapper 详解与实战 1. 概述 在医学图像处理&#xff08;如DTI纤维束端点显示、血管中心线粒子化展示&#xff09;或手术导航场景中&#xff0c;我们经常需要渲染百万级甚至千万级的点数据。传统的 vtkGlyph3D 会为每…

作者头像 李华
网站建设 2026/4/16 5:27:13

内网专题:从一个安全人员的角度去学习企业型内网安全区域!

内网安全区域的划分目的是想让我们红队在打点的时候能清醒认识自己落到了哪个区域&#xff0c;面临哪个区域的防御&#xff0c;以及我要在内网横向到哪个区域等等&#xff5e;这个是我们今天的流程图&#xff01;第一类&#xff1a;外部接触区&#xff08;互联网暴露面&#xf…

作者头像 李华