leetcode_189_Rotate Array(easy)(C++)
2016-03-16 14:05
483 查看
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array
rotated to
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
[show hint]
Related problem: Reverse Words in a String II
第一种:
class Solution {
public:
void rotate(vector& nums, int k) {
const int n = nums.size();
k = k % n;
vector backup(nums.end() - k, nums.end());
for(int i = n - 1 ; i >= k ; --i)
{
nums[i] = nums[i-k];
}
for( int i = 0; i < k; i++)
{
nums[i] = backup[i];
}
}
};
第二种:
class Solution {
public:
void rotate(vector& nums, int k) {
const int n = nums.size();
k = k % n;
reverse(nums.begin(), nums.end());
reverse(nums.begin() + k, nums.end());
reverse(nums.begin(), nums.begin() + k ) ;
}
};
vector中的begin指的是容器的第一个元素,end指的容器中最后一个元素的下一个元素
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.
[show hint]
Related problem: Reverse Words in a String II
第一种:
class Solution {
public:
void rotate(vector& nums, int k) {
const int n = nums.size();
k = k % n;
vector backup(nums.end() - k, nums.end());
for(int i = n - 1 ; i >= k ; --i)
{
nums[i] = nums[i-k];
}
for( int i = 0; i < k; i++)
{
nums[i] = backup[i];
}
}
};
第二种:
class Solution {
public:
void rotate(vector& nums, int k) {
const int n = nums.size();
k = k % n;
reverse(nums.begin(), nums.end());
reverse(nums.begin() + k, nums.end());
reverse(nums.begin(), nums.begin() + k ) ;
}
};
vector中的begin指的是容器的第一个元素,end指的容器中最后一个元素的下一个元素
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解