算法:轮转数组---循环取模运算

文章来源:

https://blog.csdn.net/weixin_45630258/article/details/132729961

欢迎各位大佬指点、三连

1、题目:

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

2、分析特点:

  • 轮转 ==> 取模运算

  • 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原数组下标为 i 的元素放至新数组下标为 (i+k) mod n 的位置,最后将新数组拷贝至原数组即可。

3、代码:

4、复杂度分析:

  • 时间复杂度: O(n),其中 n 为数组的长度。
  • 空间复杂度: O(n)。

5、总结:

轮转、循环 k 步,要想到取模运算,另外需要一个新数组作为结果数组是因为如果我们不使用额外数组,我们直接将每个数字放至它最后的位置,这样被放置位置的元素会被覆盖从而丢失,所以需要一个新数组作为结果数组,最后拷贝回去原数组。

如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

相关推荐
林抒1 分钟前
(2025版)MongoDB 8.0.13 版本安装与配置(Windows 版)保姆级教程
windows·mongodb·nosql数据库
w***4814 分钟前
CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现
java·后端·spring
架构师沉默16 分钟前
为什么工作 10 年都没遇过分布式锁?
java·后端·架构
客梦17 分钟前
数据结构基本知识
数据结构
镜花水月linyi24 分钟前
synchronized 锁升级原理:从 JDK 8 实现到 JDK 25 演进
java·后端·java ee
fei_sun24 分钟前
【总结】【数据结构】树、二叉树、森林转化
数据结构
ERP老兵-冷溪虎山25 分钟前
Python/JS/Go/Java同步学习(第五十篇半)四语言“path路径详解“对照表: 看完这篇定位文件就通透了(附源码/截图/参数表/避坑指南)
java·javascript·python·golang·中医编程·编程四语言同步学·path路径详解
零匠学堂202526 分钟前
移动学习平台与在线学习平台是什么?主要有哪些功能?
java·spring boot·学习
少平81830 分钟前
一分钱的Bug(求助帖)
java
q***017734 分钟前
Spring.factories
java·数据库·spring