我们可以发现输出前三位数是输入的后三位,输出后四位数是输入的前四位。而移动步数 k=3,剩余长度=数组长度 - 移动步数 = 7-3=4 ,刚好对应我们发现的规律。...只要截取输入的后k位的数组与 输入的剩余长度的数组,即为所求:[5,6,7]+[1,2,3,4]
但是:题目要求使用空间复杂度为 O(1) 的 原地 算法。...或者改变一下顺序先反转前 剩余位数和后k位:
输入: 1,2,3,4,5,6,7
反转前剩余长度的: 4,3,2,1
反转后k位:7,6,5
此时数组:4,3,2,1,7,6,5
反转整个数组: 5,6,7,1,2,3,4...swapArray(nums,0,k-1);//反转0到k-1索引,前k位的数组
swapArray(nums,k,numsLen-1);//反转k到末尾索引,后剩余位数位的数组...(nums,k,numsLen-1);//反转k到末尾索引,后剩余位数位的数组
的顺序和参数即可,不再复现。