189. Rotate Array
題目網址:https://leetcode.cn/problems/rotate-array/
題意:給一 array
nums
, 將其往右旋轉k
次, 其中k
為非負整數。
Solution 1:
想法:用額外的 array 來記住原本的
nums
來進行旋轉, 由於k
有可能會大於n
, 所以先將k
做 mod 運算e.g.
nums = [1, 2, 3]
,k = 4
, 其實k
等價於4 % 3 = 1
class Solution { |
- time:$O(n)$ ➔ for loop
- space:$O(n)$ ➔
tmp
Solution 2:
想法:將
nums
分成兩個部分, 旋轉後不會溢出nums
的、旋轉後會溢出nums
的。發現可以先將nums
進行 reverse, 然後針對那兩個 group 再做一次 reverse 即為所求
class Solution { |
- time:$O(n)$ ➔ reverse 遍歷
nums
- space:$O(1)$ ➔ 只需常數空間
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論