leetcode-每日一题-还原排列的最少操作步数(中等,数学逻辑)

news2025/1/23 10:32:15
回家了很少看了,今天突然心血来潮做了今天的每日一题,还不错,最后是一次AC,说明这么长时间没看实力没有下降多少,哈哈哈哈,自恋一下,后面我会更新一些课设和实验作业,进入正题。
给你一个偶数 n​​​​​​ ,已知存在一个长度为 n 的排列 perm ,其中 perm[i] == i​(下标 从 0 开始 计数)。
一步操作中,你将创建一个新数组 arr ,对于每个 i :
如果 i % 2 == 0 ,那么 arr[i] = perm[i / 2]
如果 i % 2 == 1 ,那么 arr[i] = perm[n / 2 + (i - 1) / 2]
然后将 arr​​ 赋值​​给 perm 。
要想使 perm 回到排列初始值,至少需要执行多少步操作?返回最小的 非零 操作步数。

示例 1:
输入:n = 2
输出:1
解释:最初,perm = [0,1]
第 1 步操作后,perm = [0,1]
所以,仅需执行 1 步操作
示例 2:
输入:n = 4
输出:2
解释:最初,perm = [0,1,2,3]
第 1 步操作后,perm = [0,2,1,3]
第 2 步操作后,perm = [0,1,2,3]
所以,仅需执行 2 步操作
示例 3:
输入:n = 6
输出:4

1000=>n>=2

这道题第一眼反应是dp,因为做了很多dp的题目所以第一反应就是dp,认真看一下发现应该是数学规律,因为题目给的条件很容易让人想到是摸索规律,发现给n赋予一些值之后比如4.6.8进行测试发现就是每次把下标为偶数的数组值提前,为奇数的往后放,依据这个规律我们只需要找一个代表的偶数和代表的奇数,当他们两同时归位的时候我们就认为整体是归位好的,这个证法是正确的,所以我们只需要将题目给的条件封装成一个函数即可求解

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

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

相关文章

密码学_ECC椭圆曲线加密算法

算法介绍 椭圆加密算法(ECC)是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。公钥密码体制根据其所依据的难题一般分为三类&#xff1a…

【jQuery】常用API——jQuery样式操作

一、操作 css 方法 jQuery 可以使用 css 方法来修改简单元素样式。1. 参数只写属性名,则是返回属性值$(this).css(color);2. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以…

Go基础学习

文章目录回看下历史环境安装和开发工具:基础语法:go的注释:变量定义:简短定义模式Go的变量交换匿名变量(空白标识符):变量的作用域:iota常量计数器数据类型布尔类型数值型整数浮点数…

新冠COVIN-19流感病患轨迹追溯

实验背景 冬季是流感的高发季节,现已知某流感病毒的传播力很强,政府部门也陆续公开了部分流感确诊患者(后续简称“病患”)的非隐私信息,这部分数据为相关研究人员研究该流感病毒的传播与防控提供了重要的数据支撑。 然…

Linux网站服务实操练习

作者简介:一名99年软件运维应届毕业生,正在自学云计算课程。宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。创作不易,动动小手…

python:打包package

简介 把模块打包成package,可以进行分发和安装。 packaged的打包和安装一、package层次架构二、 package的打包和安装1. 创建setup.py2. 打包package3. 安装package一、package层次架构 其中mypackage为进行打包的文件夹,文件夹下包含多个脚本&#xff1…

钢铁行业应用APS生产排产系统的好处

1 钢铁行业APS生产排产系统设计的主要业务流程 全局一体化计划:主要负责订单交期评审与应答、销产转换、主生产计划、铁水需求计划,该计划的最终目标是对各个分厂的日计划提出整体要求。主要对口业务部门为公司生产计划排程部门。 各个工段厂区的一体化…

SpringCloud微服务项目实战 - 4.自媒体平台(博主后台)

“我读过很多书,但后来大部分都忘记了,你说这样的阅读究竟有什么意义?” “当我还是个孩子时,我吃过很多食物,现在已经记不起来吃过什么了。但可以肯定的是,它们中的一部分已经长成我的骨头和肉。” 系列文…

LaoCat带你认识容器与镜像(三【上】)

有道是每逢佳节倍惰怠 ~,春节期间随缘更新吧 ~ 本章内容 Docker挂载数据卷相关。 本文实操全部基于Ubuntu 20.04 宿主机 > linux服务器本身 前边章节就介绍过Docker数据卷相关的知识点,也特别强调了生产环境一定要记得挂载数据卷,编程的小…

【前端】Vue项目:旅游App-(11)city:添加热门数据、动态修改索引栏、点击跳转、显示城市

文章目录目标过程与代码添加热门数据热门数据样式索引栏索引监听点击、保存数据、回退首页跳转到city页、显示城市效果总代码修改的文件city.jscurrentGroupCity.vuehome.vue目标 上一篇以indexBar的形式显示了数据:【前端】Vue项目:旅游App-&#xff0…

【Kubernetes 企业项目实战】01、使用 kubeadm 安装 K8s-v1.23 高可用集群

目录 K8s-v1.23 安装环境规划 kubeadm 和二进制安装 k8s 适用场景分析 一、初始化安装 k8s 集群的环境 1.1 初步的环境初始化 1.2 配置主机之间无密码登录 1.3 关闭交换分区 swap 提升性能 1.4 修改机器内核参数 1.5 配置阿里云的 repo 源 1.6 配置安装 k8s 组件需要…

python调试器 ipdb

文章目录1. 介绍1.1 常用调试方式1.2 安装 ipdb2. 用法3. 命令3.1、查看源代码3.2、添加断点3.3 添加临时断点3.4 清除断点3.5、打印变量值3.6、逐行调试命令3.7、非逐行调试命令3.8 跳出函数,跳入函数3.9、查看当前函数所有参数3.10 打印变量的值3.11、打印变量类型…

11. 盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例…

【openGauss】在openEuler(ARM架构)上安装openGauss(单机版)

一、系统版本介绍 当前案例中的openGauss安装,底层操作系统为openEuler-20.03-LTS版本,当前openGauss对Python版本兼容性最好的是Python 3.6版本与Python 3.7版本,该实验使用的openEuler版本自带Python 3.7.4,不需要再自行安装 二…

光电探测器怎么选

想要挑选光电探测器,首先应该理解探测器的重要的几个指标。 实际看一个光电探测器吧 输入输出接口三个部分,光纤输入,射频输出,电源供电 数据手册 捡几个难理解的说说,详细推导解释这里不赘述了,难理解的…

【二】Netty 搭建简单的http服务

Netty 搭建简单的http服务Netty 简介代码展示netty 依赖NettyServer netty 服务端启动类MyChannelInitializer 设置编码解码器,并添加自己的业务方法MyClientHandler 实现自己的业务方法。主要方法 是读取到数据后处理效果展示服务端打印截图采用Postman 测试 截图N…

JDBC 实现增删改查的实际操作,很简单

大家好&#xff0c;今天给大家分享一下JDBC 实现增删改查的实际操作 我们还是使用的Maven的方式&#xff0c; 首先要创建一个干净的Maven webapps项目 看这个就可以了 要导入相关的依赖 <dependencies><!-- https://mvnrepository.com/artifact/mysql/mysql-connec…

如何使用 HTML5 Web 连接到 VMware vSphere Hypervisor

本文将向你展示如何在计算机上连接 VMware vSphere Hypervisor 7.0.3,VMware vSphere Hypervisor 7.0.3 也称为 ESXi 7.0.3。 连接 ESXi 7.0.3 下载工具以管理 ESXi 主机服务器连接 ESXi 7.0.3 服务器下载工具以管理 ESXi 主机服务器 现在不需要任何工具来管理 ESXi 7.0.3,从…

1.8周报

SourceURL:file:///home/mrl/文档/1.8周报.docx 周报 代码行数&#xff1a; 周一 611 周二 672 周三 524 周四 528 周五 450 周六 545 周日 564 遇到的问题&#xff1a; 系统配置问题&#xff1a; 在升级安装python3时&#xff0c;由于操作失误&#xff0c;导…

数据脱敏实战经验

1. 创建隐私数据类型枚举&#xff1a;PrivacyTypeEnum2. 创建自定义隐私注解&#xff1a;PrivacyEncrypt3. 创建自定义序列化器&#xff1a;PrivacySerializer4. 隐私数据隐藏工具类&#xff1a;PrivacyUtil5. 注解使用这两天在整改等保测出的问题&#xff0c;里面有一个“用户…