这篇文章写于 2020,已经超过 6 年了。内容可能已经过时。
旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
|
- 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
- 要求使用空间复杂度为 O(1) 的 原地 算法。
reverse函数用于反转在[first,last)范围内的顺序(包括first指向的元素,不包括last指向的元素),reverse函数没有返回值.
思路
1. 三旋转法
用基础库函数无脑旋转就行:
- 第一次旋转,将其反过来
- 对
k要求的部分进行变换 - 转回来
|
代码:
|
2. 暴力法
遍历一遍取个余然后无脑swap变换
|
|
Refer
|
微信
支付宝
导航 // 相关文章