Leetcode 题目解析之 Rotate Array
【摘要】 Leetcode 题目解析之 Rotate Array
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.
show hint
Hint:
Could you do it in-place with O(1) extra space?
Related problem: Reverse Words in a String II
void reverse(int[] nums, int st, int ed) {
while (st < ed) {
int t = nums[st];
nums[st] = nums[ed];
nums[ed] = t;
st++;
ed--;
}
}
public void rotate(int[] nums, int k) {
int length = nums.length;
k = k % length;
if (length == 1 || k == 0)
return;
reverse(nums, 0, length - k - 1);
reverse(nums, length - k, length - 1);
reverse(nums, 0, length - 1);
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)