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

文章来源:

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 分钟前
栈的深度解析与C++实现
开发语言·数据结构·c++·学习·知识
一只叫煤球的猫5 分钟前
并行不等于更快:CompletableFuture 让你更慢的 5 个姿势
java·后端·性能优化
莓有烦恼吖9 分钟前
基于AI图像识别与智能推荐的校园食堂评价系统研究 04-评价系统模块
java·tomcat·web·visual studio
leoufung9 分钟前
LeetCode 322. Coin Change:从错误思路到正确一维 DP
算法·leetcode·职场和发展
旧梦吟12 分钟前
脚本网页 双子星棋
算法·flask·游戏引擎·css3·html5
Wpa.wk13 分钟前
接口自动化 - 了解接口自动化框架RESTAssured (Java版)
java·数据库·自动化
wa的一声哭了16 分钟前
内积空间 内积空间二
java·开发语言·python·spring·java-ee·django·maven
SadSunset16 分钟前
Git常用命令
java·学习
用户61354114601616 分钟前
nbsetup2.8.4128管理工具安装教程及工具详解
windows
晓131317 分钟前
后端篇——第二章 Maven高级全面教程
java·maven