当前位置: 首页 > article >正文

蓝桥杯---力扣题库第38题目解析

文章目录

  • 1.题目重述
  • 2.外观数列举例说明
  • 3.思路分析(双指针+模拟)
  • 4.代码说明

1.题目重述

外观数列实际上就是给你一串数字,我们需要对于这个数据进行一个简单的描述罢了;

2.外观数列举例说明

外观数列都是从1开始的,也就是给定的这个参数n=1的时候,我们返回的就是外观数列的第n个元素,也就是n,这个外观数列里面的元素是存在着规律的;

第一个元素就是1,但是他在我们的这个数组里面的下标是0;

第二个元素是对于第一个元素的描述,因为第一个元素是1,因此这个描述就是一个一,我们写作11,十位的1表示的就是一个,个位的1表示的就是数字1;

第三个元素是对于第二个元素的描述,第二个元素是11,我们读作2个1,写法就是21,十位上面的2表示2个,个位上面的1表示的就是数字1;

第四个元素是对于第三个元素的描述,也就是对于21的描述,这个时候的描述就是1个2,2个1,对吧,因此这个写作就是1221,这个千位的1表示的就是1个,百位的2表示的就是数字2,十位的2表示的就是2个,个位的1表示的就是数字1

综合上面的描述和分析,相信你很快就可以看懂下面的这个官方给的例子:

3.思路分析(双指针+模拟)

下面我们探讨的问题就是针对于一串数字,我们应该如何进行描述,我是使用下面的这个案例进行说明:

下面的这个数字描述应该是5个1,3个2,4个3,但是使用代码的使用,我们应该找到这个里面的规律,如何去使用Java语言对于这个里面的规律进行描述呢?

首先就是定义left,right指针,两个指针都指向第一个元素,right向右移动,直到不是1为止,因为我们需要统计这个过程中的1的个数,这个当right指向第一个二的时候,这个right下标就是5,而这个left=0,这个时候的right-left正好就是我们的1的个数,因此我们可以描述为5个1;

当这个1统计结束之后,我们需要统计2的个数,这个时候重复之前的操作:首先是让left指向我们的right这个时候指向的位置,也就是第一个2,这个时候right继续移动,直到不是2为止,这个时候right-left记录下来这个过程里面的2的个数,以此类推;

4.代码说明

1)首先初始化这个ret,如果n就是1,这个时候返回的外观数列值就是1;

2)接下来的这个for循环是从1开始的,为什么从1开始,因为假设n=2,这个时候我们只需要操作一次这个过程,因为n=1的时候默认这个返回值就是1;

ret表示的是连续相同的字符组成的这个字符串,len表示的是这个连续相同的字符组成的这个字符串的长度,因为我们需要表示是几个什么数字组成的,所以需要知道这个长度;

3)在这个双指针移动的过程中,条件就是left指向的这个字符和right是一样的,我们就让这个right++,但是这个需要防止我们的right越界,最后结束的时候right-left就是字符个数;

4)我们的这个temp.append首先加入的是连续字符的个数,其次是这个字符是什么,也就是我们的left指向的字符元素;

5)最后把这个temp转换成字符串作为返回值;

相关文章:

蓝桥杯---力扣题库第38题目解析

文章目录 1.题目重述2.外观数列举例说明3.思路分析(双指针模拟)4.代码说明 1.题目重述 外观数列实际上就是给你一串数字,我们需要对于这个数据进行一个简单的描述罢了; 2.外观数列举例说明 外观数列都是从1开始的,也…...

oCam:免费且强大的录屏软件

今天给大家推荐一个非常好的录屏软件。几乎可以满足你日常工作的需求。而且软件完全免费,没有任何的广告。 oCam:免费且强大的录屏软件 oCam是一款功能强大的免费录屏软件,支持屏幕录制、游戏录制和音频录制等多种模式,能够满足不…...

Day81:数据的保存

在编程中,数据保存是非常重要的,它使得程序能够持久化存储数据,并在程序重启后继续使用。这一节,我们将介绍如何使用 Python 来保存数据,涉及常见的几种方式,包括将数据保存到文件中、使用数据库等方法。 1. 保存数据到文本文件 文本文件是最常用的数据存储方式之一。你…...

苍穹外卖 项目记录 day11 Spring Task订单定时处理-来单提醒-客户催单

文章目录 Spring Taskcron表达式Spring Task使用步骤订单状态定时处理WebSocketWebSockt入门示例来单提醒客户催单 Spring Task Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 应用场景: 1). 信用卡每月还款…...

【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

Django开发入门 – 1.搭建基于Python Web框架Django的IDE开发环境

Django开发入门 – 1.搭建基于Python Web框架Django的IDE开发环境 Build A Integrated Development Environment(IDE) for Python Web Framework - django By JacksonML 1. 获取及安装最新版Python 打开Chrome浏览器,访问Python官网链接:https://www…...

【Java基础】序列化、反序列化和不可变类

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java基础面经 📚本系列文章为个…...

R语言 文本分析 天龙八部

起因, 目的: 前面有人对 “倚天屠龙记” 进行分析,我这里只是进行模仿而已。 完整的文件, 已经绑定了,反正读者可以找一下。 案例背景 小说《天龙八部》是金庸先生所著的武侠小说,也是“射雕三部曲”的前传。全书共50章,字数超过一百万字。故事发生在北宋末年,以大理…...

Gradle 发布Jar到 Maven Central

1. 前置步骤 自 2024 年 3 月 12 日起,所有注册和发布都将通过 Central Portal 进行。 Central Portal 帐户注册命名空间可用于对工件进行签名的 GPG 密钥 1. 创建 GPG 密钥对 2. 分发公钥 更多教程参考本文: 如何发布jar包到maven中央仓库(2024年3月最…...

小米6的ubantu touch 怎么安装docker

deekseek 真的太牛逼了。 小米6的ubantu touch 怎么安装docker? Thought for 19 seconds 嗯,用户问的是在小米6上安装Ubuntu Touch后如何安装Docker。首先,我需要确认Ubuntu Touch的版本是否支持Docker。Ubuntu Touch是基于Ubuntu的移动操作…...

USB子系统学习(四)使用libusb读取鼠标数据

文章目录 1、声明2、HID协议2.1、描述符2.2、鼠标数据格式 3、应用程序4、编译应用程序5、测试 1、声明 本文是在学习韦东山《驱动大全》USB子系统时,为梳理知识点和自己回看而记录,全部内容高度复制粘贴。 韦老师的《驱动大全》:商品详情 …...

深度剖析 Redisson 分布式锁:原理、实现与应用实践

文章目录 写在文章开头详解Redisson 分布式锁使用和实现前置准备工作分布式锁的基本使用公平锁的使用联锁的使用读写锁基本使用常见问题Redisson和Jedis有什么区别redisson如何实现分布式锁redisson如何实现分布式锁的可重入redisson如何实现公平锁Redisson的watchdog机制是什么…...

Android Studio 配置 Gerrit Code Review

很多大厂(华为、荣耀)的大型项目都有gerrit代码审查流程,那么我们如何实现不手动敲命令行,就在Android Studio中像平常开发一样,只需要用鼠标点点点,就能将代码推送到gerrit审查仓呢,现在就来跟…...

基于微信小程序的医院预约挂号系统的设计与实现

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…...

仅128个token达到ImageNet生成SOTA性能!MAETok:有效的扩散模型的关键是什么?(卡内基梅隆港大等)

论文链接:https://arxiv.org/pdf/2502.03444 项目链接:https://github.com/Hhhhhhao/continuous_tokenizer 亮点直击 理论与实验分析:通过实验和理论分析建立了潜空间结构与扩散模型性能之间的联系。揭示了具有更少高斯混合模型(G…...

AWS成本优化实战:查询未关联弹性IP地址的完整指南

一、背景介绍 1.1 为什么要管理未关联的弹性IP 弹性IP (Elastic IP) 是AWS中的重要资源,但未关联的弹性IP会产生不必要的成本支出。主要问题包括: 闲置资源浪费持续产生费用增加运维成本影响资源管理效率1.2 解决方案价值 通过自动化脚本定期检查未关联的弹性IP: 及时发现…...

I2C协议—读写EEPROM(24Cxx为例)

STM32 I2C协议详解与应用实践-CSDN博客 实际项目中移植IIC协议及读写EEprom代码: /* AT24C08,写次数达100万次SOC ,2500次充放电次数,需要500万次记录,需存储均衡 每页*/#include "FreeRTOS.h" #include "task.h" #incl…...

示例:JAVA调用deepseek

近日,国产AI DeepSeek在中国、美国的科技圈受到广泛关注,甚至被认为是大模型行业的最大“黑马”。在外网,DeepSeek被不少人称为“神秘的东方力量”。1月27日,DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜,在…...

Linux系统命令无法使用(glib库相关问题)

1.背景描述 Yum强制安装了一些软件,安装软件成功无报错,完成后不久突然发现系统出问题了,所有的命令无法使用了,如ls、mv、cat等基本命令报错。 relocation error: /lib64/libpthread.so.0: symbol_libc_dl_error_tsd …...

Java 一键将 Word 文档转为 PDF

嘿,朋友们!在开发中,经常会碰到需要把 Word 文档转换成 PDF 格式的需求,像生成报告、合同啥的。Java 有不少好用的库能实现这个功能,下面就给大家介绍两种常见的方法,分别使用 Apache POI 和 Docx4J 结合 i…...

从基础到进阶:一文掌握排序、查找、动态规划与图算法的全面实现(C++代码实例解析)

引言 算法是计算机科学的核心,也是程序员解决复杂问题的利器。从基础的排序与查找到进阶的动态规划与图论算法,掌握这些技能不仅是提升编程能力的必经之路,更是解决实际问题的根本。本篇文章将通过 C 实现多个经典算法,包括排序、…...

Nginx反代Ollama接口跨域、无法逐字输出问题

场景 本地部署deepseek模型,用的Ollama管理,内网穿透到公网,在通过nginx反代ollama接口。 问题描述 跨域问题 nginx转发时请求头中需要加入origin,并且origin还要和ollama接口同源(协议、ip、端口一致)。…...

电脑黑屏按什么键恢复?电脑黑屏的解决办法

电脑黑屏的原因有很多,可能是硬件、软件、系统或者病毒等方面造成的。那么,当我们遇到电脑黑屏时,应该怎么做呢?有没有什么快捷的方法可以恢复正常呢?本文将为您介绍一些常见的电脑黑屏情况及其解决办法。 一、电脑开机…...

docker启动报错code=exited, status=1/FAILURE——问题排查

问题 在某台centos7机器上,启动docker服务 sudo systemctl start docker报下列错误: ● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: …...

Kong故障转移参数配置

一、Passive Health Check Healthchecks.Passive.Unhealthy.HttpStatuses 含义: 列出了被认为是“不健康”的HTTP状态码。目的: 当健康检查(Healthcheck)返回这些状态码时,系统会认为服务不健康,并可能触…...

使用opencv解析视频,通过图片比对,筛选出每一帧视频的变化

记录瞬间 最近碰到一个问题,在客户端上操作时,存在背景判断的情况,对自动化实现此操作增加难度。 所以考虑到实际的使用,将一些计算机视觉技术加入到实际的使用中,来解决此问题。 import os import cv2 import numpy#…...

思翼遥控器疑问?

1.地面端与遥控端对频,地面端选择数传2为串口,天空端的UART2通过USB转TTL模块连接电脑,通过串口助手观察得有1Hz输出帧(开启遥控器APP时间段为10Hz),共21字节,请问,这个是什么含义&a…...

anaconda中可以import cv2,但是notebook中cv2 module not found

一、问题 anaconda中成功import cv2 但是jupyter notebook中却无法导入cv2 二、排查 anaconda中使用python路径如下: jupyter notebook中使用python路径如下: 可以发现路径不一致。 三、解决 ①查看可用的kernel ②选中想要修改的kernel,打…...

如何解决 Linux 文件系统挂载失败的问题

当遇到Linux文件系统挂载失败的问题时,您可以通过以下步骤来解决问题: 解决方法: 检查挂载点: 确保要挂载的目标文件系统存在,并且挂载点是正确的。检查挂载点是否已经被其他文件系统占用。 检查文件系统状态&#x…...

PHP填表统计预约打卡表单系统小程序

📋 填表统计预约打卡表单系统——专属定制,信息互动新纪元 📊 填表统计预约打卡表单系统,一款专为现代快节奏生活量身打造的多元化自定义表单统计小程序,集信息填表、预约报名、签到打卡、活动通知、报名投票、班级统…...