(C语言)力扣189.轮转数组

编程入门 行业动态 更新时间:2024-10-26 17:19:01

(C语言)力扣189.轮转<a href=https://www.elefans.com/category/jswz/34/1771288.html style=数组"/>

(C语言)力扣189.轮转数组

目录

1.分析

2.代码实现


1.分析

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

首先通过分析,要将数组中的各个元素都挪动位置,所以考虑到,如果在同一数组内操作会因为前面位置已经被修改而达不到效果,于是要另开辟一个相同大小的数组存放数据,然后再将数据进行拷贝,其次,新开辟的数字中的每个元素都是原数组向右挪动得到的,因此,新数组中的每个元素向左挪动也可得到原数组,于是就得到了以下关系

newArr[(i + k) % numsSize] = nums[i];

利用此关系,使用for循环将数组每个位置的值都计算并插入好就得到了想要的挪动后的数组

2.代码实现

void rotate(int* nums, int numsSize, int k) {int newArr[numsSize];for (int i = 0; i < numsSize; ++i) {newArr[(i + k) % numsSize] = nums[i];}for (int i = 0; i < numsSize; ++i) {nums[i] = newArr[i];}
}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

更多推荐

(C语言)力扣189.轮转数组

本文发布于:2023-12-04 23:52:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662492.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   语言   力扣

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!