当前位置:   article > 正文

C语言旋转数组_c语言装数组的数组

c语言装数组的数组

 

题目:给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。


示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:

  • 1 <= nums.length <= 105
  • -231 <= nums[i] <= 231 - 1
  • 0 <= k <= 105

代码

  1. #include<stdio.h>
  2. void rotate(int* nums, int numsSize, int k){
  3. int i;
  4. int b[numsSize];
  5. for(i=0;i<numsSize;i++){
  6. b[i]=nums[i];
  7. }
  8. for(i=0;i<k;i++){ //搞定后K位前移问题
  9. nums[i]=b[numsSize-k+i];
  10. }
  11. for(i=k;i<numsSize;i++){ //搞定前面后移问题
  12. nums[i]=b[i-k];
  13. }
  14. }
  15. int main()
  16. {
  17. int a[7]={1,2,3,4,5,6,7};
  18. int *prices=a;
  19. int k=3;
  20. int pricesSize=7;
  21. rotate(prices,pricesSize,k);
  22. for(int i=0;i<7;i++){
  23. printf("%d",a[i]);
  24. }
  25. return 0;
  26. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/567518
推荐阅读
相关标签
  

闽ICP备14008679号