标签:
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]
is rotated to [5,6,7,1,2,3,4]
.
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
思路:想出尽可能多的方法,这里先写一种,以后再想其他的。
方法1:时间复杂度O(n),空间复杂度O(n - k % n)。
1 class Solution { 2 public: 3 void rotate(vector<int>& nums, int k) { 4 vector<int> tem; 5 int n = nums.size(); 6 k %= n; 7 for (int i = 0; i < n - k; i++) 8 tem.push_back(nums[i]); 9 for (int i = n - k; i < n; i++) 10 nums[i - n + k] = nums[i]; 11 for (int i = k; i < n; i++) 12 nums[i] = tem[i - k]; 13 } 14 };
标签:
原文地址:http://www.cnblogs.com/fenshen371/p/4910171.html