###### tags: `LeetCode` `Medium`
# LeetCode #189 [Rotate Array](https://leetcode.com/problems/rotate-array)
### (Medium)
給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。
Ex: nums=[1,2,3,4,5,6,7], k=3, 則轉換完的答案為[5,6,7,1,2,3,4]
---
做三次反轉:
1. 全vector反轉, 得到[7,6,5,4,3,2,1]
2. 前k項反轉, 得到[5,6,7,4,3,2,1]
3. 後nums.size()-k項反轉, 得到[5,6,7,1,2,3,4]即為答案
---
```
class Solution {
public:
void rotate(vector<int>& nums, int k) {
k=k%nums.size();
reverse(nums.begin(),nums.end());
reverse(nums.begin(),nums.begin()+k);
reverse(nums.begin()+k,nums.end());
}
};
```