旋转数组
力扣 189. 旋转数组
题目说明
给定一个数组,将数组中的元素向右移动
k个位置,其中k是非负数。进阶:
- 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
- 你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?
- 提示:
1 <= nums.length <= 2 * 10^4-2^31 <= nums[i] <= 2^31 - 10 <= k <= 10^5
示例
例1
1 | 输入: nums = [1,2,3,4,5,6,7], k = 3 |
例2
1 | 输入:nums = [-1,-100,3,99], k = 2 |
笔者理解
此题是一道数组算法问题,在力扣题库中被定义为中等题。
解法
当笔者阅读完此题后,发现此题是旋转数组的原题目也是最经典的题目,我们可以用多种方法进行求解,在这里我们采用翻转数组的形式,让我们来看看具体如何实现的吧。
实现
1 | class Solution { |
时间和空间效率都还行,可见此解法还比较适合此题;
总结
本题是今天的一题,难度是为中等,感兴趣的朋友都可以去尝试一下,此题还有其他更多的解法,朋友们可以自己逐一尝试。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 徐年の博客!









