news 2026/3/12 23:23:16

【优选算法必刷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/3/7 20:53:27

基于springboot vue的家乡旅游宣传系统_xp0hz729

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/3/12 23:18:38

电子气象仪—赋能多元场景的智能气象监测设备

在气象监测、环境管理、户外作业等领域&#xff0c;电子气象仪凭借其高精度、实时性与便携性&#xff0c;成为获取环境参数的关键工具。它通过集成多种传感器与智能算法&#xff0c;实现对温度、湿度、气压、风速等气象要素的精准捕捉&#xff0c;为农业、科研、应急救援等行业…

作者头像 李华
网站建设 2026/3/12 23:18:38

采煤机试验平台的日常保养:提高厂家的生产效率

采煤机试验平台的日常保养是确保设备长期稳定运行的关键环节&#xff0c;对提高厂家的生产效率具有直接促进作用。以下从保养要点、优化逻辑及实施建议三方面展开说明&#xff1a;一、核心保养项目液压系统维护每日检查液压油位及清洁度&#xff0c;及时更换滤芯&#xff0c;避…

作者头像 李华
网站建设 2026/3/12 23:19:05

使用 Python 为 PDF 添加水印

在现代数字化办公环境中&#xff0c;PDF 已成为一种广泛使用的文件格式&#xff0c;尤其是在需要保持文档格式时。为了保护文档内容&#xff0c;添加水印是一种常见的方法。本文将介绍如何使用 Python 为 PDF 文件添加水印&#xff0c;具体步骤将通过代码示例详细说明。一、准备…

作者头像 李华
网站建设 2026/3/12 15:32:59

【Tmux】从进程PID追溯到tmux窗口的完整排查流程

实战&#xff5c;从进程PID追溯到tmux窗口的完整排查流程 在Linux环境下&#xff0c;我们经常会遇到“只知道进程PID&#xff0c;想找到其对应的tmux启动窗口”的场景&#xff08;比如定位GPU进程所属的tmux会话&#xff09;。本文以实际案例&#xff08;Blender进程排查&#…

作者头像 李华