s1.3 力扣之旋转数组

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

  输入: 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]

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x2skh7/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

static void Main(string[] args) { var f = 2 % 4; int[] arr = { 1,2,3,4 }; rote(arr, 2); } static void rote(int[] nums, int k) { int length = nums.Length; int[] temp = new int[length]; //把原数组值放到一个临时数组中, for (int i = 0; i < length; i++) { temp[i] = nums[i]; } //{ 1, 2, 3, 4 }; k=2 //然后在把临时数组的值重新放到原数组,并且往右移动k位 for (int i = 0; i < length; i++) { //nums[i+1]=nums[i]; //以使用(i + k) % length来计算重新赋值的元素下标(类似园形一圈) nums[(i + k) % length] = temp[i]; /* nums[2]=temp[0]; nums[3]=temp[1]; */ } }

  

原文地址:https://www.cnblogs.com/yzenet/p/15718219.html