【算法】模拟

8e19eee2be5648b78d93fbff2488137b.png

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

 一:替换所有的问号

二:提莫攻击

三:z字形变换

四:外观数列

五:数青蛙

方法一

方法二


 一:替换所有的问号

1576. 替换所有的问号 - 力扣(LeetCode)

方法一

class Solution {public String modifyString(String ss) {char[] s = ss.toCharArray();int len = s.length;for(int i = 0 ; i < s.length ; i++){if(s[i] == '?'){for(char ch = 'a' ; ch <= 'z' ; ch++){if( (i == 0 || ch != s[i-1]) && (i == len-1 || ch != s[i+1]) ){s[i] = ch;break;}}}}String ret = String.valueOf(s);return ret;}
}

方法二(复杂) 

class Solution {public String modifyString(String s) {char[] tem = new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};char[] str = s.toCharArray();for(int i = 0 ; i < str.length ; i++){while(str[i] == '?'){for(int j = 0 ; j < tem.length ; j++){if(i == 0){if((str.length > 1) && (str[i+1] != tem[j])){str[i] = tem[j];break;}else if(str.length == 1){str[i] = tem[j];break;}else{}}else if(i == str.length-1){if(str[i-1] != tem[j]){str[i] = tem[j];}else{}}else{if((str[i+1] != tem[j]) && (str[i-1] != tem[j])){str[i] = tem[j];break;}else{}}}}}String ret = "";for(int i = 0 ; i < str.length ; i++){ret += str[i];}return ret;}
}

二:提莫攻击

495. 提莫攻击

class Solution {public int findPoisonedDuration(int[] nums, int time) {int sum = 0;for(int i = 0 ; i < nums.length-1 ; i++){if(nums[i+1] - nums[i] >= time){sum += time; }else{sum += nums[i+1]-nums[i];}}sum += time;return sum;}
}

三:z字形变换

6. Z 字形变换

class Solution {public String convert(String s, int numRows) {//处理一下特殊情况if(numRows == 1){return s;}//1:创建一个变量来接收拼接的字符串int d = 2 * numRows - 2;StringBuilder ret = new StringBuilder();int len = s.length();//2:确定第一行的下标,并按照下标找到该字符,拼接上去for(int i = 0 ; i < len ; i += d){ret.append(s.charAt(i));}//3:确定中间的行数,两层循环,一行一行处理,需要两个指针用于确定坐标,然后拼接for(int i = 1 ; i < numRows-1 ; i++){for(int k = i , j = d - k ; k < len || j < len ; k += d , j += d){if(k < len){ret.append(s.charAt(k));}if(j < len){ret.append(s.charAt(j));}}}//4:确定好最后一行,同第一行处理方式一样for(int i = numRows-1 ; i < len ; i += d){ret.append(s.charAt(i));}return ret.toString();}
}

四:外观数列

38. 外观数列

class Solution {public String countAndSay(int n) {String ret = "1";//1:下面的循环用于依次解释ret,只用解释n-1次for(int i = 1 ; i <= n-1 ; i++){//每一次都是一个新的StringBuilderStringBuilder temp = new StringBuilder();//模拟:第一次解释,对应的是n=2int len = ret.length();for(int left = 0 , right = 0 ; right < len ; ){//2:模拟有几个相同的数while(right < len && ret.charAt(left) == ret.charAt(right)){right++;}temp.append(Integer.toString(right-left));temp.append(ret.charAt(left));left = right;}//更新ret,StringBuilder转换为String类型ret = temp.toString();}return ret;}
}

五:数青蛙

1419. 数青蛙

方法一

class Solution {public int minNumberOfFrogs(String croakOfFrogs) {char[] str = croakOfFrogs.toCharArray();String t = "croak";int n = t.length();int[] hash = new int[n];Map<Character,Integer> hashMap = new HashMap<>();//<字符,字符对应下标>for(int i = 0 ; i < n ; i++){hashMap.put(t.charAt(i),i);}for(char ch : str){if(ch == t.charAt(0)){if(hash[n-1] != 0){hash[n-1]--;hash[0]++;}else{hash[0]++;}}else{int i = hashMap.get(ch);if(hash[i-1] == 0){return -1;}else{hash[i-1]--;hash[i]++;}}}for(int i = 0 ; i < n-1 ; i++){if(hash[i] != 0){return -1;}}return hash[n-1];}
}

方法二

class Solution5 {public int minNumberOfFrogs(String croakOfFrogs) {//创建hash表,创建字符数组,遍历数组Map<Character,Integer> hash = new HashMap<>();char[] str = croakOfFrogs.toCharArray();hash.put('c',0);hash.put('r',0);hash.put('o',0);hash.put('a',0);hash.put('k',0);for(int i = 0 ; i < str.length ; i++){if(str[i] == 'c'){if(hash.get('k') == 0){hash.put('c',hash.get('c')+1);}else{hash.put('c',hash.get('c')+1);hash.put('k',hash.get('k')-1);}}else{if(str[i] == 'r'){if(hash.get('c') != 0){hash.put('c',hash.get('c')-1);hash.put('r',hash.get('r')+1);}else{return -1;}}else if(str[i] == 'o'){if(hash.get('r') != 0){hash.put('r',hash.get('r')-1);hash.put('o',hash.get('o')+1);}else{return -1;}}else if(str[i] == 'a'){if(hash.get('o') != 0){hash.put('o',hash.get('o')-1);hash.put('a',hash.get('a')+1);}else{return -1;}}else if(str[i] == 'k'){if(hash.get('a') != 0){hash.put('a',hash.get('a')-1);hash.put('k',hash.get('k')+1);}else{return -1;}}else{}}}if(hash.get('c') != 0 || hash.get('r') != 0 ||hash.get('o') != 0 || hash.get('a') != 0 ){return -1;}int ret = hash.get('k');return ret;//判断}
}

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

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

相关文章

Ubuntu环境安装RabbitMQ

1.安装Erlang RabbitMq需要Erlang语⾔的⽀持&#xff0c;在安装rabbitMq之前需要安装erlang # 更新软件包 sudo apt-get update # 安装 erlang sudo apt-get install erlang 查看erlang版本 : erl 退出命令:halt(). 2. 安装RabbitMQ # 更新软件包 sudo apt-get update # 安装 …

【STM32】定时器 —— 输出比较PWM

使用的单片机机型为STM32F103C8T6 文章目录 PWM输出比较编程实例输出比较呼吸灯舵机转向PWM控制直流电机 PWM 对于5V电路来说&#xff0c;输出只有高电平5V和低电平0V&#xff0c;控制LED灯就是点亮和熄灭&#xff0c;但如果想要控制其亮度呢&#xff1f;这就需要PWM PWM PWM…

Anaconda 下安装OpenCV 4.10.0

大家也可以使用pip安装。 pip install opencv-python4.10.0 这里使用conda安装 conda install opencv4.10.0 import cv2 print(cv2.__version__)

深入探索 C++ 类型转换的奥秘

目录 1. C语言中的类型转换 2.C的类型转换 &#xff08;1&#xff09;static_cast &#xff08;2&#xff09; dynamic_cast &#x1f60a;&#x1f60a;static_cast和dynamic_cast在面对继承和多态的父子类强转的区别&#xff1a; 1.static_cast 和 继承关系中的强转 …

量产小妙招---KdTreeFLANN的使用

1 概念 KDTreeFLANN是一种结合了k-d树&#xff08;k-dimensional tree&#xff09;数据结构和FLANN&#xff08;Fast Library for Approximate Nearest Neighbors&#xff09;算法库的技术&#xff0c;主要用于高效地进行最近邻搜索等操作。 KdTreeFLANN是Point Cloud Library …

62 基于单片机的智能饮水机

所有仿真详情导航&#xff1a; PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于51单片机&#xff0c;采用DS1302时钟模块读取时间&#xff0c;DS18B20温度传感器检测时间&#xff0c;超声波检测&#xff0c;如果…

制造业数据集成案例分享:3小时内实现MySQL到MySQL数据对接

ZZ刷新生产用料清单四化库存-制造一处-3小时&#xff1a;MySQL到MySQL数据集成案例分享 在现代制造业中&#xff0c;实时、准确的数据流动是确保生产效率和资源优化的关键。本文将分享一个实际运行的系统对接集成案例——“ZZ刷新生产用料清单四化库存-制造一处-3小时”&#…

大数据新视界 -- 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

目录 一、Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二、创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2.1 main函数中 2.2.2 类头文件 2.3 .pro文件 2.4 命名规范 2.5 QtCreator常用快捷键 三、Qt按钮小程序 …

【k8s】创建基于sa的token的kubeconfig

需求 创建一个基于sa的token的kubeconfig文件&#xff0c;并用这个文件来访问集群。 具体创建sa 和sa的token请参考文章: 【k8s】给ServiceAccount 创建关联的 Secrets-CSDN博客 创建sa apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:namespace: jtkjdevnam…

STM32F103单片机使用STM32CubeMX新建IAR工程步骤

打开STM32CubeMX软件&#xff0c;选择File 选择新建工程 在打开的窗口输入单片机型号 在右下角选择单片机型号&#xff0c;然后点右上角 start project&#xff0c;开始新建工程。 接下来设置调试接口&#xff0c;在左边System Core中选择 SYS&#xff0c;然后在右右边debu…

MATLAB 最小二乘平面拟合(90)

MATLAB 最小二乘平面拟合(90) 一、算法介绍二、算法实现1.代码2.结果:一、算法介绍 平面方程: ax+by+cz+d = 0 执行任务:读取一组点云(这里用自定义生成的平面模拟点云代替,在其中添加了噪声来模拟真实的数据),使用最小二乘拟合平面,来输出平面参数,并可视化显示拟…

Redis面试专题-持久化

目录 前言 持久化相关知识 1.三种持久化机制 2.RDB持久化 3.深入剖析一下RDB持久化过程 4.AOF持久化 5.RDB和AOF对比​编辑 面试题 1.redis持久化机制有哪些&#xff1f; 2.那仔细讲讲你对他们的理解 3.你刚刚说AOF的文件很大&#xff0c;那AOF文件会越来越大&#xf…

Java --- JVM编译运行过程

目录 一.Java编译与执行流程&#xff1a; 二.编译过程&#xff1a; 1.编译器&#xff08;javac&#xff09;&#xff1a; 2.字节码文件&#xff08;.class&#xff09;&#xff1a; 三.执行过程&#xff1a; 1.启动JVM&#xff08;Java虚拟机&#xff09;&#xff1a; 2…

sheng的学习笔记-AI-序列模型(Sequence Models),RNN,GRU,LSTM

Ai目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 基础知识 定义&#xff1a; 序列模型是输入输出均为序列数据的模型&#xff0c;它能够将输入序列数据转换为目标序列数据。常见的序列模型类型包括一对一、一对多、多对一、部分多对多和完全多对多。 重要的是需要有顺序…

Excel技巧:如何批量调整excel表格中的图片?

插入到excel表格中的图片大小不一&#xff0c;如何做到每张图片都完美的与单元格大小相同&#xff1f;并且能够根据单元格来改变大小&#xff1f;今天分享&#xff0c;excel表格里的图片如何批量调整大小。 方法如下&#xff1a; 点击表格中的一个图片&#xff0c;然后按住Ct…

16-02、JVM系列之:内存与垃圾回收篇(二)

JVM系列之&#xff1a;内存与垃圾回收篇(二) ##本篇内容概述&#xff1a; 1、堆Heap Area 2、方法区Method Area 3、运行时数据区总结 4、对象的实例化内存布局和访问定位一、堆 Heap Area 1、堆的核心概念 一个JVM实例只存在一个堆内存&#xff0c;堆也是Java内存管理的核心…

android studio 读写文件操作(应用场景二)

android studio版本&#xff1a;2023.3.1 patch2 例程&#xff1a;readtextviewIDsaveandread 本例程是个过渡例程&#xff0c;如果单是实现下图的目的有更简单的方法&#xff0c;但这个方法是下一步工作的基础&#xff0c;所以一定要做。 例程功能&#xff1a;将两个textvi…

【算法】——前缀和(矩阵区域和详解,文末附)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;前缀和模版 二&#xff1a;前缀和模版2 三&#xff1a;寻找数组的中心下标 四&#x…

数字图像处理(11):RGB转YUV

&#xff08;1&#xff09;RGB颜色空间 RGB颜色空间&#xff0c;是一种基于红色、绿色、蓝色三种基本颜色进行混合的颜色空间&#xff0c;通过这三种颜色的叠加&#xff0c;可以产生丰富而广泛的颜色。RGB颜色空间在计算机图像处理、显示器显示、摄影和影视制作等领域具有广泛应…