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

文章来源:

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

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

相关推荐
elseif1233 分钟前
【双指针/二分】P1102 A-B 数对
c++·算法·二分·双指针
电梯界知识分子3 分钟前
江西抚州临川九尊府五层别墅:受限楼梯间里,全黑铝合金观光井道配曳引龙门架的落地记录
大数据·前端·网络·算法·家用电梯
木井巳12 分钟前
【记忆化搜索】斐波那契数
java·算法·leetcode·深度优先·剪枝·推荐算法
挂科边缘12 分钟前
Android Studio 保姆级安装教程,Windows 电脑上安装 Android Studio
android·windows·android studio
落魄大学生之流水线上谋生计13 分钟前
JVM内存结构、垃圾回收算法与类加载机制详解
jvm·算法
. . . . .15 分钟前
comfyUI原理
人工智能·算法·机器学习
淡海水17 分钟前
10-05-高级-模式匹配-CSharp如何改变与数据结构的交互方式
数据结构·算法·c#·模式匹配
geovindu24 分钟前
java: Task Scheduler
java·开发语言·后端
神奇小梵28 分钟前
java的特殊语法点,与常规语言相异的点
java·开发语言
果壳science37 分钟前
张祥前统一场论研讨会在香港理工大学举办
人工智能·算法