【C++算法】40.模拟_N 字形变换
文章目录
- 题目链接:
- 题目描述:
- 解法
- C++ 算法代码:
题目链接:
6. N 字形变换
题目描述:

解法
解法一:模拟
a,b,c,d,e,f,g......
n=4弄个矩阵放进去,最后从左往右读取。

解法二:模拟优化-找规律

在n=4的时候,0和6之间相差了6个元素:0,1,2,3,4,5

我们把元素移动位置,可以得到在输出的第一个元素后面那个元素,是距离第一个元素2n-2个元素的。得到公差d=2n-2
第0行的规律就是:0->0+d->0+2d......->0+kd (kd<len)
第n-1行的规律就是:n-1->n-1+d->n-1+2d......->n-1+kd (n-1+kd<len)

这里的第1~n-2行都有两个元素是一组的。并且他们加起来刚好是公差。
第1~n-2行的规律是:(k,d-k)->(k+d,2d-k)......->(k+(k-1)d,kd-k) (k+(k-1)d<len),(kd-k<len)
不过如果就这么结束,那就错啦。
n=1的时候,运用上面的规律就会死循环,所以我们要单独讨论n=1的情况,直接输出字符串。
C++ 算法代码:
class Solution
{public:string convert(string s, int numRows){// 处理边界情况if(numRows == 1) return s;string ret;int d = 2 * numRows - 2, n = s.size();// 1. 先处理第一行for(int i = 0; i < n; i += d)ret += s[i];// 2. 处理中间行for(int k = 1; k < numRows - 1; k++) // 枚举每一行{for(int i = k, j = d - k; i < n || j < n; i += d, j += d){if(i < n) ret += s[i];if(j < n) ret += s[j];}}// 3. 处理最后一行for(int i = numRows - 1; i < n; i += d)ret += s[i];return ret;}
};
相关文章:
【C++算法】40.模拟_N 字形变换
文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 6. N 字形变换 题目描述: 解法 解法一:模拟 a,b,c,d,e,f,g...... n4 弄个矩阵放进去,最后从左往右读取。 解法二:模拟优化-…...
【云计算】虚拟化技术
目录 1. 虚拟化技术在云计算中的那些地方发挥了关键作用? 2. 比较VMare,Xen等虚拟化产品的关键技术,以及对云计算技术提供的支持? 3. 服务器虚拟化,存储虚拟化和网络虚拟化都有哪些实现方式? 4. 讨论桌面…...
手机租赁系统开发指南一站式服务流程解析
内容概要 手机租赁系统的开发是一个复杂但有趣的过程,像搭建乐高一样,只要找到合适的模块,就能打造出一个宾至如归的租赁平台。在这部分,我们将对开发流程的整体结构进行简要概述,并指出每个环节的重要性。 首先&…...
【机器学习】—时序数据分析:机器学习与深度学习在预测、金融、气象等领域的应用
云边有个稻草人-CSDN博客 目录 引言 1. 时序数据分析基础 1.1 时序数据的特点 1.2 时序数据分析的常见方法 2. 深度学习与时序数据分析 2.1 深度学习在时序数据分析中的应用 2.1.1 LSTM(长短期记忆网络) 2.2 深度学习在金融市场预测中的应用 2…...
OBS + SRS:打造专业级直播环境的入门指南
OBS SRS:打造专业级直播环境的入门指南 1. OBS简介2. OBS核心功能详解2.1 场景(Scenes)管理2.2 源(Sources)控制2.3 混音器功能2.4 滤镜与特效2.5 直播控制面板 3. OBS推流到SRS服务器配置指南3.1 环境准备3.2 OBS推流…...
收银系统源码-会员管理
会员制早已成为门店经营首选的营销工具,尤其是针对连锁多门店会员管理尤为重要。 必然要求门店的收银系统需要支持会员管理,能提供多种会员权益; 1.会员类型 收银系统支持常规会员、plus付费会员、可绑定实体卡; plus会员&…...
MongoDB深化与微软的合作,新增人工智能和数据分析集成和微软 Azure Arc支持
日前,在微软Ignite技术大会上,MongoDB公司宣布面向MongoDB与微软共同客户推出三项新功能,双方协作更进一步。首先,需要构建由检索增强生成 (RAG) 技术驱动的应用程序的客户,现在可以选择MongoDB Atlas作为微软Azure AI…...
对流层路径延迟对SAR方位压缩的影响(CSDN_20240301)
目录 仿真参数 方位向脉冲压缩与高阶多普勒参数的关系 仿真结果 2m分辨率 1m分辨率 0.5m分辨率 0.3m分辨率 0.2m分辨率 0.1m分辨率 0.05m分辨率 小结 对流层路径延迟对方位脉冲压缩的影响 仿真参数 地球参数 赤道半径(m) 6378140 极半径&a…...
RK3588 Linux实例应用(2)——SDK与编译
SDK包编译与使用 一、安装SDK包1.1 安装软件依赖1.2 Git 配置1.3 安装 SDK1.4 安装第三方开源库 二、编译SDK包 一、安装SDK包 安装的步骤和原子哥一样的,我讲一下注意的细节。 看正点原子路径为:开发板光盘A盘→10、用户手册→02、开发文档→02【正点原…...
深入探究 Scikit-learn 机器学习库
一、数据处理与准备 (一)数据加载 内置数据集:Sklearn 自带一些经典数据集,如鸢尾花数据集(load_iris)、波士顿房价数据集(load_boston)等。这些数据集方便初学者快速上手实践&…...
PAT甲级-1114 Family Property
题目 题目大意 共有n个户主,每个户主的房产按照“ 户主id 父亲id 母亲id 孩子个数 孩子的id 房产数 房产面积 ”的格式给出。如果父亲或母亲不存在,值为-1。每个户主及其父亲母亲孩子可以构成一个家庭,不同户主如果有相同的家人,…...
5.2 JavaScript 案例 - 轮播图
JavaScript - 轮播图 文章目录 JavaScript - 轮播图基础模版一、刷新页面随机轮播图案例二、轮播图 定时器版三、轮播图完整版 基础模版 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"…...
使用IP自签名SSL证书
最近需要创建WebSocket服务器并使用SSL证书,由于是内网测试,所以需要使用指定IP的自签SSL证书。 其实笔者前面博文 使用nexus3作为Docker镜像仓库 解决nexus3登录x509: certificate has expired or is not yet valid 中有创建过相应的证书,这…...
数据库中的运算符
1.算术运算符 算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加()、减(-)、乘(*)、除(/)和取模(%&…...
定制erp真的很贵吗?
定制ERP真的很贵吗?这个问题,相信很多企业在考虑是否实施ERP系统时,都会纠结。特别是对于一些中小型企业,预算有限,心里总会有个疑问:花大价钱定制一个系统,真的值得吗?其实…...
Java Integer的数值比较
文章目录 环境问题答案说明解决办法其它总结 环境 Windows 11 专业版Java 21 问题 下面这段代码的运行结果是什么? Integer i1 0;int i2 0;for (int n 0; n < 200; n) {if (i1 ! i2) {System.out.println("i1 " i1 ", i2 " i2);b…...
QGroundControl之5-AppSettings.cc
介绍 应用程序设置 Application Settings ,这里看下语言选择功能,它是怎么和json文件关联起来的,刚刚看的时候,很是奇怪这么多的json文件作用。 1.AppSettings.cc 文件怎么和App.SettingsGroup.json关联 在AppSettings.cc文件没…...
Django Fixtures 使用指南:JSON 格式详解
在Django开发中,fixtures是一种非常有用的工具,它们可以帮助我们序列化数据库内容,并在不同的环境或测试中重用这些数据。本文将详细介绍Django fixtures的概念、如何生成和使用JSON格式的fixtures。 什么是Fixtures? Fixtures是…...
单元测试SpringBoot
添加测试专用属性 加载测试专用bean Web环境模拟测试 数据层测试回滚 测试用例数据设定...
邮件营销平台应如何提升外贸开发信的效果?
邮件营销平台在外贸中优势包括高效市场定位、成本效益、增强客户关系、实时反馈优化、全球覆盖及时区优化、环保可持续性。Geeksend邮件营销是强大平台,高效管理,精准销售,把握外贸市场的每一个机遇,助力外贸企业精准定位、简化管…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
