189. 旋转数组

https://leetcode-cn.com/problems/rotate-array/

题目描述

方法 1:使用额外空间

思路

先用一个额外的数组将最后的 k 位保存起来,然后将前面的元素右移 k 位,再用事先保存的 k 位元素填充数组开头。

复杂度分析

  • 时间复杂度:$O(N)$。

  • 空间复杂度:$O(k)$。

代码

JavaScript Code

方法 2: 巴黎铁塔翻转再翻转

思路

复杂度分析

  • 时间复杂度:$O(N)$。

  • 空间复杂度:$O(1)$。

代码

JavaScript Code

方法 3: 循环移位

思路

代码中 count 的来源可以去看官方题解的证明。

复杂度分析

  • 时间复杂度:$O(N)$。

  • 空间复杂度:$O(1)$。

代码

JavaScript Code

更多题解可以访问:https://github.com/suukii/91-days-algorithm

Last updated

Was this helpful?