算法专题六:模拟

一.替换所有的问号

在这里插入图片描述

替换所有的问号

1.思路一

在这里插入图片描述

class Solution {
public:string modifyString(string s) {for(int i=0;i<s.size();i++){if(s[i] == '?'){for(char j = 'a' ; j<='z' ; j++){//1.注意数组越界if((i==0 || s[i-1] != j) && (i==s.size()-1 || s[i+1] != j)){s[i] = j;break;}}}}return s;}
};

2.GIF题目解析

请添加图片描述

二.提莫攻击

在这里插入图片描述
提莫攻击

1.思路一

在这里插入图片描述

class Solution {
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int time = 0;for(int i=1;i<timeSeries.size();i++){int time_grep = timeSeries[i] - timeSeries[i-1];//1.时间超过if(time_grep >= duration){time += duration;}//2.时间没有超过else{time += time_grep;}}//3.最后一次攻击一定会走完!time += duration;return time;}
};

三.N字型变换

1.思路一:模拟

在这里插入图片描述

class Solution {
public:string convert(string& s, int numRows) {//0.只有一行if (numRows == 1)return s;//1.构建二维数组vector<string> vv(numRows);//2.字符排放int flag = 1;int a = 0;int b = numRows - 2;for (int i = 0; i < s.size(); i++){//2-1:从上往下if (flag == 1){if (a <= numRows - 1){vv[a] += s[i];a++;}if (a == numRows){if(numRows >= 3)a = 0, flag = -1;a = 0;}}//2-2:从下往上else{if (b >= 0){vv[b] += s[i];b--;}if (b == 0)b = numRows-2, flag = 1;}}//3.定义字符串类型进行+=string ret;for (int i = 0; i < numRows; i++) ret += vv[i];return ret;}
};

2.思路二:找规律进行优化

在这里插入图片描述

class Solution{
public:string convert(string s, int numRows) {//0.特殊情况判断:if (numRows == 1)return s;//1.计算公差int d = (2 * numRows) - 2;int n = s.size();//2.规律去模拟不需要创建额外的空间:string ret;for (int i = 0; i < numRows; i++){//1.第一行字符if (i == 0)for (int i_1 = 0; i_1 < n; i_1 += d) ret += s[i_1];//2.最后一行字符else if (i == numRows - 1)for (int i_n = numRows - 1; i_n < n; i_n += d) ret += s[i_n];//3.中间字符:左在右不在特殊情况elsefor (int i_k_left = i, i_k_right = d - i; (i_k_left < n) || (i_k_right < n); i_k_left += d, i_k_right += d){if(i_k_left < n )ret += s[i_k_left];if(i_k_right < n)ret += s[i_k_right];}}return ret;}
};//时间复杂度:O(n)
//空间复杂度:O(1)

四.外观数列

在这里插入图片描述
外观数列

1.思路一:模拟

在这里插入图片描述

class Solution {
public:string countAndSay(int n) {//1.开始字符串:string ret("1");//2.内容的遍历:while (--n){int left = 0, right = 0;string s1;//3.字符串的遍历+数据更新for (left = 0, right = 0; right < ret.size(); right++){if (ret[right] != ret[left]){int n = (right - left ) * 10 + (int)(ret[left] - '0');//1.数据保存一下:s1 += to_string(n);//2.指针数值更新left = right;}}//4.数据都不去走for中的if产生的问题。int n = (right - left) * 10 + (int)(ret[left] - '0');s1 += to_string(n);ret = s1;}return ret;}
};

五.数青蛙

在这里插入图片描述
数青蛙

1.思路一:模拟+哈希记录数据

在这里插入图片描述

class Solution {
public:int minNumberOfFrogs(string croakOfFrogs) {//1.哈希表记录数据unordered_map<char, int> indx;vector<int> hash(5);//2.初始化hash的字符值?string s1("croak");//3.遍历一遍int n = s1.size();for (int i = 0; i < n; i++) indx[s1[i]] = i;//4.遍历字符串考虑青蛙!for (auto ch : croakOfFrogs){//1.第一个cif (ch == 'c'){//1.k有值if (hash[n - 1] >= 1)hash[0]++, hash[n - 1]--;//2.k没有值else if (hash[n - 1] == 0)hash[0]++;}//2.正常情况:else{int j = indx[ch];if (hash[j - 1] == 0) return -1;hash[j - 1]--, hash[j]++;}}//特殊情况:结束之后应该除了k位置hash是有数值其他hash中应该是没有数值的!for(int i=0;i<n-1;i++){if(hash[i]!=0)return -1;}return hash[n - 1];}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/598624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python学习】Python学习1

目录 【Python学习】Python学习1 1.前言2.Python安装3.PyCharm安装4.PyCharm插件推荐5.参考 文章所属专区 Python学习 1.前言 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 于 1989 年底发明&#xff0c;第一个公开发行版发…

ValueError: Could not find a backend to open path with iomode `wI` 解决

运行如下语句时报错 imageio.mimwrite(os.path.join(savedir, video.mp4)报错信息&#xff1a; ValueError: Could not find a backend to open video.mp4 with iomode wI. Based on the extension, the following plugins might add capable backends:FFMPEG: pip install …

【C/C++】轻量级跨平台 开源串口库 CSerialPort

文章目录 1、简介2、支持的平台3、已经支持的功能4、Linux下使用5、使用vcpkg安装CSerialPort6、交叉编译7、效果图8、基于CSerialPort的应用8.1、CommMaster通信大师8.2、CommLite串口调试器 1、简介 Qt 的QSerialPort 已经是跨平台的解决方案&#xff0c;但Qt开发后端需要 Q…

[C#]C# OpenVINO部署yolov8图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来&#xff0c;领域内的研究者们…

【React系列】Hook(二)高级使用

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. Hook高级使用 1.1. useReducer 很多人看到useReducer的第一反应应该是redux的某个替代品&#xff0c;其实并不是…

解锁测试性能瓶颈:深度探讨JMeter分布式性能测试!

在做后端服务器性能测试中&#xff0c;我们会经常听到分布式。但你是否了解分布式呢&#xff1f;今天&#xff0c;我们就来给大家讲讲&#xff0c;在企业实战中&#xff0c;如何使用分布式进行性能测试&#xff0c;实战过程中&#xff0c;又有哪些地方要特别注意&#xff1f; 0…

计算机网络——网络模型的组织、看法以及标准化流程

1. 通信技术和标准化领域中扮演重要角色的组织 1.1 国际和国家官方标准化机构 OSI&#xff1a;国际标准化组织&#xff08;ISO&#xff09;&#xff0c;负责国际标准的制定&#xff0c;旨在确保全球产品和服务的安全性、可靠性和效率。它有许多国家分支机构&#xff0c;包括法…

什么是滚动码?什么工作原理?

一、什么是滚动码&#xff1f; 这里我们将简单了解什么是滚动码及其工作原理。首先简要描述其概念和操作。然后&#xff0c;我们将看一个示例来进一步阐明。最后&#xff0c;我们将研究滚动代码以防止攻击的原因。 滚动码&#xff0c;也称为跳跃码&#xff0c;是远程无钥匙进入…

阿里的通义灵码在android studio上的使用方法

通义灵码是阿里推出的免费AI编程工具&#xff0c;基于通义大模型&#xff0c;国内Copilot平替产品&#xff0c; 1&#xff0c;提供行级/函数级实时续写、 2&#xff0c;自然语言生成代码、 3&#xff0c;单元测试生成、 4&#xff0c;代码注释生成、 5&#xff0c;代码解释…

两整数之和 -- 位运算

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 本题链接 力扣&#xff08;LeetCode&#xff09; 输入描述 输入两个要相加的数&#xff0c;a和b 输出描述 返回a和b的和&#xff0c;这里其实直接return ab; 直接就过了&#xff0c;但是人题目要求还是给点面子~ 算法…

【mars3d】批量关闭矢量数据的startFlicker()闪烁或者全部关闭startFlicker()

问题 1.graphic/entity/billboard怎么能够批量关闭startFlicker()闪烁或者 全部关闭startFlicker()呢&#xff1f; 相关链接 1.http://mars3d.cn/editor-vue.html?idgraphic/entity/billboard 2.http://mars3d.cn/apidoc.html#FlickerEntity 期望效果 1.graphic.stopFlic…

国图公考:2024年上半年中小学教师资格考试(笔试)报考须知

(一)信息填报时间&#xff1a;2024年1月12日9:00至1月15日16&#xff1a;00 (二)信息确认时间&#xff1a;2024年1月13日9:00至1月16日16&#xff1a;00 (三)网上缴费时间&#xff1a;2024年1月13日9:00至1月17日24&#xff1a;00

【Pyhton】多年dat数据波段合成为一个dat

我有一个文件夹&#xff0c;内有1961-2020年逐年平均气温栅格数据&#xff0c;格式为dat&#xff0c;dat文件不是以年份命名的&#xff0c;而是一长串名字的最后4位是年份&#xff0c;现在我要对所有年份进行波段合成&#xff0c;合成一个dat&#xff0c;dat每个波段为不同年份…

java面试题-Spring常见的异常类有哪些?

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 java面试题汇总-目录-持续更新中 NullPointerException&…

VUE--保留小数(过滤器)

1.cutOutNum.js export const cutOutNum (num, decimals) > {if (isNaN(num) || (!num && num ! 0)) {return "-";}function toNonExponential(_num) {var m Number(_num).toExponential().match(/\d(?:\.(\d*))?e([-]\d)/);return Number(_num).toF…

MySQL运维实战(2.4) SSL认证在MySQL中的应用

作者&#xff1a;俊达 引言 MySQL支持使用TLS协议进行通信&#xff0c;该协议在数据库通信中具有关键作用。首先&#xff0c;TLS能够加密客户端与服务端之间的通信数据&#xff0c;涵盖了客户端发送至服务端的SQL请求以及服务端返回给客户端的数据&#xff0c;从而确保敏感信…

宝宝洗衣机哪个牌子质量好?好用的小型洗衣机推荐

当婴儿的到来&#xff0c;确实会给家庭带来许多变化&#xff0c;就好比如对于宝宝相关衣物的清洗需求。对于新生儿及婴幼儿的衣服&#xff0c;一般都要给予特殊的照顾与清洗&#xff0c;以保证不含细菌及过敏原。尤其是刚刚出生的婴儿&#xff0c;这时候宝宝们的皮肤很是幼嫩。…

python实现给定两个列表,“求同存异”

目录 问题描述&#xff1a; 代码实现&#xff1a; 问题描述&#xff1a; 给定两个列表&#xff0c;list1和list2。 python实现求list1和list中重复的元素&#xff0c;以及在list1中&#xff0c;不在list2的元素。 代码实现&#xff1a; def common_unique(pred_list, gold_l…

k8s之pod组件

1.什么是pod pod是k8s中最小的资源管理组件 pod也是最小化运行容器化的应用的资源管理对象 pod是一个抽象的概念&#xff0c;可以理解为一个或者多个容器化应用的集合 一个pod内的容器&#xff0c;必须都运行在同一个节点。基于现代容器技术的要求&#xff0c;一个pod运行一…

pyparamvalidate 项目背景和需求分析

目录 一、前置说明1、总体目录2、本节目标 二、项目背景三、需求分析三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器&#xff0c;从编码到发布全过程》 2、本节目标 阐述 pyparamvalidate 项目背景和需求分析。 二、项目背景…