首页 > 其他 > 详细

Rotate Array II

时间:2015-03-26 12:38:10      阅读:226      评论:0      收藏:0      [点我收藏+]

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.

 

This is same as Reverse Words in a String.  (https://leetcode.com/problems/reverse-words-in-a-string/)

 1 public class Solution {
 2     public void rotate(int[] nums, int k) {
 3         if(nums == null || nums.length == 0) return;
 4         int len = nums.length;
 5         k %= len;
 6         reverse(nums, 0, len - 1);
 7         reverse(nums, 0, k - 1);
 8         reverse(nums, k, len - 1);
 9     }
10     
11     public void reverse(int[] arr, int start, int end){
12         while(start < end){
13             int tmp = arr[start];
14             arr[start] = arr[end];
15             arr[end] = tmp;
16             start ++;
17             end --;
18         }
19     }
20 }

 

Rotate Array II

原文:http://www.cnblogs.com/reynold-lei/p/4368270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!