给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
题目很简单理解,就是将数组里面的数字向右偏移,偏移的坐标也很好求就是i=(i+k)%n,但是我们并不能直接偏移数字,因为这会对原数组产生覆盖由此产生了第一种解法
1
另外开辟内存空间
1 | vector<int> num(nums); |
2
直接在原数组上操作
这也就意味着我们需要不断对被覆盖的数字进行操作,直到回到起点。
1 | int &&n=nums.size(); |
3
翻转数组
过程
1 | nums = "----->-->"; k =3 |
代码
1 | k%=nums.size(); |
本文作者: jiangyuhao
本文链接: http://example.com/2022/03/22/%E5%8F%8C%E6%8C%87%E9%92%88/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!