模拟算法及其优化

news2024/9/22 19:45:48

第一题 替换所有问号

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

class Solution {
public:
    string modifyString(string s) {

        string ret;
        for(int i=0;i<s.size();i++)
        {
            if(i==0)
            {
                if(s[i]=='?'&&i+1<s.size())
                {
                    for(char a='a';a<='z';a++)
                    {
                        if(a!=s[i+1])
                        {
                            ret+=a;
                            break;
                        }
                    }
                }
                else if(i+1>=s.size()) ret+='a';
                else ret+=s[i];

            }
            else
            {
                if(s[i]=='?')
                {                
                    for(char a='a';a<='z';a++)
                    {
                        if(ret[i-1]!=a&&i+1<s.size()&&s[i+1]!=a)
                        {
                            ret+=a;
                            break;
                        }
                        if(i+1>=s.size()&&ret[i-1]!=a)
                        {
                            ret+=a;
                            break;
                        }
                    }

                }
                else ret+=s[i];

            }
        }

        return ret;
    }
};

第二题 提莫攻击

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 

class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        int total=0;
        total+=duration;
        for(int i=1;i<timeSeries.size();i++)
        {
            int x=timeSeries[i]-timeSeries[i-1];//计算中毒时间的差值来判断中毒伤害的叠加
            if(x<duration) total+=x;
            else total+=duration;
        }
        //total+=3;
        return total;
    }
};

第三题 字形变换

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

class Solution {
public:
    string convert(string s, int numRows) {
        if(numRows==1) return s;//这里不进行特判一定会超时
        string ret;
        int d=(numRows-1)*2;//画图观察第一行的间距差

        for(int i=0;i<s.size();i+=d)//先处理第一行
        {
            ret+=s[i];
        }
        int y=d-1;//第i行第二个数字
        for(int i=1;i<numRows-1;i++)//第i行,是numsRows而不是s数组的size
        {
            for(int j=i,k=d-j;j<s.size()||j<s.size();j+=d,k+=d)//此处一共需要两组数据,特别注意
            {
                if(j<s.size())
                ret+=s[j];
                if(k<s.size())
                ret+=s[k];
            }

        }

        for(int i=numRows-1;i<s.size();i+=d)
        {
            ret+=s[i];
        }
        return ret;
    }
};


// class Solution {
// public:
//     string convert(string s, int numRows) {
//         if (numRows < 2)
//             return s;
//         vector<string> rows(numRows);
//         int i = 0, flag = -1;
//         for (char c : s) {
//             rows[i].push_back(c);
//             if (i == 0 || i == numRows -1)
//                 flag = - flag;
//             i += flag;
//         }
//         string res;
//         for (const string &row : rows)
//             res += row;
//         return res;
//     }
// };

 

 

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

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

相关文章

搭建产品技术说明书,借助工具10分钟搞定!

说明书是新产品上市销售时所配套的非常重要的文件&#xff0c;是新产品的产品包非常重要的组成部分&#xff0c;其编写质量的好坏&#xff0c;直接影响了后续客户和用户对新产品的满意度&#xff0c;是新产品好口碑的重要来源&#xff0c;同时也是后续售后服务工作的起始点。 业…

大数据Flink(一百零四):SQL任务参数配置

文章目录 SQL任务参数配置 一、参数设置方式

bitlocker 加密锁定的固态硬盘,更换到别的电脑上,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥

环境: Win11 专业版 联想E14笔记本 512G ssd 问题描述: 一台笔记本因充电故障,需要拿去维修,不想重装系统,将bitlocker 加密锁定的固态硬盘拆下更换到别的笔记本电脑上,现在开机要手动填密钥,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥和之前那台电脑一…

广州华锐互动:VR虚拟现实物理学习平台,开启数字化教学新格局

随着虚拟现实(VR)技术的不断发展&#xff0c;越来越多的领域开始应用这一技术。广州华锐互动开发的VR虚拟现实物理学习平台就得到了广泛应用&#xff0c;平台涉及力学、光学、热学等初中物理知识&#xff0c;还包含了物理名人、实验器具、物理现象的还原和学习&#xff0c;相比…

AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码

AI与Prompt&#xff1a;解锁软件开发团队的魔法咒语 写在最前面论文&#xff1a;基于ChatGPT的自协作代码生成将团队协作理论应用于代码生成的研究自协作框架原理1、DOL任务分配2、共享黑板协作3、Instance实例化 案例说明简单任务&#xff1a;基本操作&#xff0c;生成的结果1…

竞赛 深度学习大数据物流平台 python

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

力扣:141. 环形链表(Python3)

题目&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的…

Android笔记(八):基于CameraX库结合Compose和传统视图组件PreviewView实现照相机画面预览和照相功能

CameraX是JetPack库之一&#xff0c;通过CameraX可以向应用增加相机的功能。在下列内容中&#xff0c;将介绍一个结合CameraX实现一个简单的拍照应用。本应用必须采用Android SDK 34。并通过该简单示例&#xff0c;了解传统View层次组件的UI组件如何与Compose组件结合实现移动应…

【pwn入门】使用python打二进制

声明 本文是B站你想有多PWN学习的笔记&#xff0c;包含一些视频外的扩展知识。 程序网络交互初体验 将程序部署成可以远程访问的 socat tcp-l:8877,fork exec:./question_1_plus_x64,reuseaddr通过网络访问程序 nc 127.0.0.1 8877攻击脚本 import socket import telnetli…

PHP简单实现预定义钩子和自定义钩子

在PHP中&#xff0c;钩子&#xff08;Hooks&#xff09;是一种机制&#xff0c;允许开发人员在特定的时机插入自定义代码。通过使用钩子&#xff0c;开发人员可以在应用程序的特定事件发生时执行自定义的功能或逻辑 钩子有两种类型&#xff1a;预定义钩子和自定义钩子。 预定…

shell的执行流控制

目录 1.for语句 2.条件语句 while...do语句 until...do 语句 if...then...elif...then...else...fi 语句 3.case语句 4.expect 5.break,continue,exit 1.for语句 作用&#xff1a;为循环执行动作 for语句结构 for //定义变量 do //使用变量&#xff0…

系列十八、请描述下bean的生命周期

一、概述 bean的生命周期是指bean从创建到销毁的整个过程。 二、生命周期 bean的生命周期是指bean从创建到销毁的整个过程&#xff0c;大致可以分为如下四个过程&#xff1a; 2.1、实例化 实例化可以通过如下几种方式完成&#xff1a;&#xff08;参考系列十五&#xff09…

区块链物联网中基于属性的私有数据共享与脚本驱动的可编程密文和分散密钥管理

Attribute-Based Private Data Sharing With Script-Driven Programmable Ciphertext and Decentralized Key Management in Blockchain Internet of Things 密钥生成算法 第 1 步&#xff1a;对于属性集A 的用户IDk&#xff0c;他首先将属性集A发送给Pi并且计算 &#xff0c…

MySQL大揭秘:深入探索Linux数据库管理

1 数据库的基本介绍 1.1 数据库的基本介绍 数据库的本质就是高级的excle表格。常见的数据库有&#xff1a;MySQL、Oracle 、sqlservermariadb就是MySQL的一种。数据库常用的名词 1.字段 &#xff1a;表格中的表头,每一列就是一个字段 2.表 &#xff1a;表格 3.库 &#xff1a…

Corel Products Keygen-X-FORCE 2023(Corel会声会影2023注册机)

Corel All Products Universal Keygens通用注册机是一款非常实用的激活工具&#xff0c;专门用于激活Corel全系列产品。尤其是被广泛使用的CorelDRAW作图软件和Corel VideoStudio会声会影视频编辑处理软件。小编也是一直关注由X-Force团队制作的注册机&#xff0c;目前已更新至…

fl studio21水果新手要不要购买?

FL Studio&#xff0c;一款深受音乐制作人和作曲家欢迎的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;不仅因其强大的功能&#xff0c;也因其在行业内的长久盛名而成为许多专业人士的首选。作为一个全方位的音乐制作软件&#xff0c;它能够满足用户在录音、编曲、混…

p5.js画布操作实战:创建,绑定指定元素,动态调整大小,隐藏滚动条,删除画布

文章简介 之前在 《p5.js 光速入门》 里粗略讲过一下如何使用 p5.js 创建画布。 这次要介绍几个 p5.js 提供的画布相关的方法。 创建画布时的相关配置。让画布绑定指定元素。重置画布大小。删除画布。 学习本文前你需要具备一点 p5.js 的知识&#xff0c;想了解的请查看 《p…

Android---StartActivity启动过程

在手机桌面应用中点击某一个 icon 之后&#xff0c;最终是通过 startActivity 去打开某一个 Activity 页面。我们知道&#xff0c;Android 中的一个 APP 就相当于一个进程。所以&#xff0c;startActivity 操作中还需要判断&#xff0c;目标 Activity 的进程是否已经创建。如果…

【洛谷 P3654】First Step (ファーストステップ) 题解(模拟+循环枚举)

First Step (ファーストステップ) 题目背景 知らないことばかりなにもかもが&#xff08;どうしたらいいの&#xff1f;&#xff09; 一切的一切 尽是充满了未知数&#xff08;该如何是好&#xff09; それでも期待で足が軽いよ&#xff08;ジャンプだ&#xff01;&#xff09…

好的FPGA编码风格(2)--多参考设计软件的语言模板(Language Templates)

什么是语言模板&#xff1f; 不论是Xilinx的Vivado&#xff0c;还是Altera的Quartus II&#xff0c;都为开发者提供了一系列Verilog、SystemVerilog、VHDL、TCL、原语、XDC约束等相关的语言模板&#xff08;Language Templates&#xff09;。 在Vivado软件中&#xff0c;按顺序…