---
# System prepended metadata

title: leetcode 189. Rotate Array
tags: [array]

---

# [leetcode 189. Rotate Array](https://leetcode.com/problems/rotate-array/)
<font color=#FFB800>Medium</font> 39.6%
- 限制
    <ul>
     <li><code>1 <= nums.length <= 10^5</code></li> 
     <li><code>-2^31 <= nums[i] <= 2^31 - 1</code></li> 
     <li><code>0 <= k <= 10^5 </code></li>
    </ul>

- Sulotion
    就是一個簡單的 vector 基本操作實作。照理說有更節省記憶體的作法，但是寫起來就沒那麼的直觀，所以我還是沒有改成更節省記憶體的作法。
    - 時間複雜度: $O(n)$
    - 空間複雜度: $O(n)$

- 程式碼
```c++!=
class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        k = k %int(nums.size());
        vector<int>result_nums_a, result_nums_b;
        result_nums_a.assign(nums.end()-k, nums.end());
        result_nums_a.insert(result_nums_a.end(), nums.begin(), nums.begin()+ nums.size()-k);
        swap(nums,result_nums_a);
    }
};
```