专题六——模拟

news2024/11/25 15:54:21

目录

一替换所有的问号

二提莫攻击  

三N字形变换 

四外观数列

五数青蛙


一替换所有的问号

oj链接:替换所有的问号

思路:简单模拟;注意i==0和i==n是处理越界问题就行!! 

class Solution
{
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;
    }
};

二提莫攻击  

oj链接:提莫攻击 

思路:模拟 + 找规律

1.先计算出timeSeries两者之间的差值:x,会有两种情况:

a.如果x>=duration:中毒时间不会被重置

b.如果x<duration: 中毒时间要重置,加上x即可,会不会在重置具体看后面

最后return时要把timeSerise[n-1]的中毒时间给加上!!

class Solution
{
public:
    int findPoisonedDuration(vector<int> &timeSeries, int duration)
    {
        int n = timeSeries.size(), ret = 0;
        for (int i = 1; i < n; i++)
        {
            int x = timeSeries[i] - timeSeries[i - 1];
            if (x >= duration)
                ret += duration;
            else
                ret += x;
        }
        return ret + duration; // 最后的中毒时间要加上
    }
};

三N字形变换 

oj链接:N字形变换 

思路:

解法1:开辟空间来模拟填表:用flag进行标记

a.如果是第一行:flag为正数,往下进行填表

b.如果是最后一行:falg为负数,往上进行填表

解法2:找规律

 


//解法1:模拟
class Solution {
public:
    string convert(string s, int numRows) 
    {
        if(numRows<2) return s;
        int n=s.size();
        vector<string> v(numRows);
        int i=0,flag=-1;//flag是关键!
        //用flag进行填表
        for(auto& e:s)
        {
            v[i].push_back(e);

            if(i==0||i==numRows-1) flag=-flag;
            i+=flag;
        }
        string ret;
        for(auto& e:v)
        {
            ret+=e;
        }
        return ret;
    }
};

//解法2:找规律
class Solution {
public:
    string convert(string s, int numRows) 
    {
        if(numRows==1) return s;
        int n=s.size(),d=2*numRows-2;
        string ret;
        for(int i=0;i<numRows;i++)
        {
            //填第一行与最后一行
            if(i==0||i==numRows-1)
            {
                int j=i;
                while(j<n)
                {
                    ret+=s[j];
                    j+=d;
                }
            }
            //中间行时要注意越界
            else
            {
                int j=i,r=d-i;
                //不确定是那个先越界
                while(j<n || r<n)
                {
                    if(j<n) ret+=s[j];
                    if(r<n) ret+=s[r];
                    j+=d;
                    r+=d;
                }  
            }

        }
        return ret;
    }
};

四外观数列

oj链接:外观数列

思路:模拟(统计前面字符出现的个数即可)

class Solution {
public:
    string countAndSay(int n) 
    {
        string ret="1";
        for(int i=2;i<=n;i++)
        {
                string ret1;
                for(int i=0;i<ret.size();i++)
                {
                    int cnt=1;//统计个数
                    while(i+1<ret.size()&&ret[i]==ret[i+1]) cnt++,i++;
                    ret1+=to_string(cnt);
                    ret1+=ret[i];
                }
                ret=ret1;
        }
        return ret;
    }
};

五数青蛙

oj链接:数青蛙

思路:模拟:遍历字符串;要用hash表储存进行遍历过程中字符个数

a.如果遇到c之后的字符:r,o,a,k:判断前驱字符:c,r,o,a是否为0

如果为0,直接return -1

不为0,前驱字符--,当前字符++;

b.如果遇到c字符,只要判断字符k是否为0

如果为0,c字符++;

如果不为0,c字符++,k字符--;

遍历完成后,要再次进行对k之前的字符个数进行判断是否为0:

如果其中一个的字符个数不为0:return -1

如果没有:return 最少青蛙的个数,即:k字符的个数

class Solution {
public:
    int minNumberOfFrogs(string croakOfFrogs) 
    {
        string s="croak";
        int n=s.size();
        vector<int> hash(n);//数组模拟哈希表,数组下标对应字符
        unordered_map<char,int> index;//【字符,字符对应的下标】进行查找字符对应的下标(辅助)
        for(int i=0;i<n;i++) index[s[i]]=i;
        for(auto& ch:croakOfFrogs)
        {
            if(ch=='c')
            {
                //看看k字符的情况
                if(hash[n-1]) 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];   
    }
};

 以上便是有关模拟的相关题目:有问题欢迎在评论区指出,谢谢!!

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

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

相关文章

基于scikit-learn的机器学习分类任务实践——集成学习

一、传统机器学习分类流程与经典思想算法简述 传统机器学习是指&#xff0c;利用线性代数、数理统计与优化算法等数学方式从设计获取的数据集中构建预测学习器&#xff0c;进而对未知数据分类或回归。其主要流程大致可分为七个部分&#xff0c;依次为设计获取数据特征集&#x…

Reactor 网络模型、Java代码实例

文章目录 1. 概述2. Reactor 单线程模型2.1 ByteBufferUtil2.2 服务端代码2.3 客户端2.4 运行截图 3. Reactor多线程模型3.1 服务端代码3.2 运行截图 4. 主从 Reactor多线程模型4.1 服务端代码4.2 运行截图 参考文献 1. 概述 在 I/O 多路复用的场景下&#xff0c;当有数据处于…

ChatTTS-WebUI测试页面项目

概述 分享可以一个专门为对话场景设计的文本转语音模型ChatTTS&#xff0c;例如LLM助手对话任务。它支持英文和中文两种语言。最大的模型使用了10万小时以上的中英文数据进行训练。在HuggingFace中开源的版本为4万小时训练且未SFT的版本. 该模型能够预测和控制细粒度的韵律特…

跪求大数据把我推给做投资交易的红薯!

在qq群里认识了君诺金融Juno Markets外汇交易平台的业务经理&#xff0c;平台上大剌剌的打出20%交易返现活动&#xff0c;一时听信了他们的话在该平台有开户入金做交易&#xff0c;做了这家平台的代理&#xff0c;然而君诺金融Juno Markets平台却不给佣金&#xff0c;我都是属于…

浏览器必备插件:最新Allow copy万能网页复制下载,解锁网页限制!

今天阿星给大家安利一个超级实用的小工具&#xff0c;专治那些“禁止复制”的网页文字。学生党、资料搜集狂人&#xff0c;你们有福了&#xff01; 想象一下&#xff0c;你在网上冲浪&#xff0c;突然遇到一篇干货满满的文章&#xff0c;正想复制下来慢慢品味&#xff0c;结果…

值传递和址传递

值传递 上面的代码是想要交换x&#xff0c;y的值&#xff0c;把x&#xff0c;y传递给swap函数之后&#xff0c;执行下面的操作&#xff1a; 在swap中a和b交换了&#xff0c;但是和x&#xff0c;y没有关系&#xff0c;所以x&#xff0c;y在main中不会变。 址传递 下面再看把x…

springcloud gateway转发websocket请求的404问题定位

一、问题 前端小程序通过springcloud gateway接入并访问后端的诸多微服务&#xff0c;几十个微服务相关功能均正常&#xff0c;只有小程序到后端推送服务的websocket连接建立不起来&#xff0c;使用whireshark抓包&#xff0c;发现在小程序通过 GET ws://192.168.6.100:8888/w…

Apple Intelligence 横空出世!它的独家秘诀在哪里?

在 WWDC 2024 大会上&#xff0c;苹果公司揭晓了自家的生成式 AI 项目——Apple Intelligence&#xff0c;其策略核心在于采用 ⌈ 更为聚焦的小型模型 ⌋ &#xff0c;而非盲目追求大模型的普遍趋势。横空出世的它究竟有什么过人之处&#xff1f;一文带你探究竟&#xff01;生成…

[DDR4] DDR1 ~ DDR4 发展史导论

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR4》 内存和硬盘是电脑的左膀右臂&#xff0c; 挑起存储的大梁。因为内存的存取速度超凡地快&#xff0c; 但内存上的数据掉电又会丢失&#xff0c;一直其中缓存的作用&#xff0c;就像是我们的工…

2786. 访问数组中的位置使分数最大

这并不是一个难题,但是我确实在做题中得到了一些启发,所以记录一下 先讲一讲这个题目的做法: 首先不难想到这是一个dp问题,(由 i 可以跳到 j ) 而且应该不难, 要不然就不是medium了,doge 那么,暴力的dp就是: dp[j] max (dp[i] nums OR dp[j] dp[i] nums - x) , i<j, 前…

mongodb 集群安装

1. 配置域名 Server1&#xff1a; OS version: CentOS Linux release 8.5.2111 hostnamectl --static set-hostname mongo01 vi /etc/sysconfig/network # Created by anaconda hostnamemong01 echo "192.168.88.20 mong1 mongo01.com mongo02.com" >> /…

【笔记】【矩阵的二分】668. 乘法表中第k小的数

力扣链接&#xff1a;题目 参考地址&#xff1a;参考 思路&#xff1a;二分查找 把矩阵想象成一维的已排好序的数组&#xff0c;用二分法找第k小的数字。 假设m行n列&#xff0c;则对应一维下标范围是从1到mn&#xff0c;初始&#xff1a; l1; rmn; mid(lr)/2 设mid在第i行&a…

【C++11】第一部分(一万六千多字)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 C11简介 统一的列表初始化 &#xff5b;&#xff5d;初始化 std::initializer_list 声明 auto decltype 右值引用和移动语义 左值引用和右值引用 左值引…

C#实现WMI获取硬盘参数

文章目录 背景涉及框架及库WMI查询小工具参数解释U盘移动硬盘本机设备 总结 背景 因为需求需要涉及获取硬盘的SN参数&#xff0c;但是又不想要获取到U盘或移动硬盘设备的SN&#xff0c;所以就浅浅的研究了一下。 以下就是我目前发现的一些参数的作用&#xff0c;够我用了。。。…

QT QFileDialog文件选择对话框

QT QFileDialog文件选择对话框 选择txt或者cpp文件&#xff0c;读取内容并显示 参考&#xff1a; QT写入文件与读取文件内容_qt往一个文件写东西-CSDN博客 #include "QtFilePreview.h" #include "qfiledialog.h" #include "qfile.h" #includ…

【记录】ChatGLM3-6B大模型部署、微调(二):微调

前言 上文记录了ChatGLM3-6B大模型本地化部署过程&#xff0c;本次对模型进行微调&#xff0c;目的是修改模型自我认知。采用官方推荐微调框架&#xff1a;LLaMA-Factory 安装LLaMA-Factory # 克隆项目 git clone https://github.com/hiyouga/LLaMA-Factory.git 安装依赖 # 安装…

Android入门第68天-自动更新/升级怎么做(生产级实例)

开篇 今天我们进入第68讲。 在第60天左右其实很多同学们已经进入了APP应用开发了,因为60天内容足以让大家踏上正实的Android开发生涯。 随着开发的深入,我们发觉日常工作中无非就是一些组件的嵌套、合理应用。当代码迭代、功能迭代越来越频繁后我们面临着另一个问题,即:…

Flutter项目,Xcode15, 编译正常,但archive报错

错误提示 PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/目录/Developer/Xcode/DerivedData/Runner-brgnkruocugbipaswyuwsjsnqkzm/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner…

世界酒中国菜全球组委会发布2024年度VIS视觉融合潘通柔和桃色调

世界酒中国菜全球组委会发布2024年度VIS视觉 融合潘通柔和桃色调引领全球风尚 2023年12月7日&#xff0c;国际色彩权威机构&#xff08;潘通&#xff09;Pantone公司发布了2024年度代表色&#xff1a;Peach Fuzz&#xff08;PANTONE 13-1023&#xff09;柔和桃色调&#xff0…

Mybatis动态sql标签

动态SQL标签简介: MyBatis的一个强大的特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他相似框架的经验,你就明白条件地串联SQL字符串在一起是多么的痛苦,确保不能忘了空格或在列表的最后省略逗号。动态SQL可以彻底处理这种痛苦。 Mybatis中实现动态sql的标签有&#x…