美文网首页
189. Rotate Array

189. Rotate Array

作者: juexin | 来源:发表于2017-01-09 19:29 被阅读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.
    [show hint]
    Related problem: Reverse Words in a String II

    public class Solution {
        public void rotate(int[] nums, int k) {
            int n = nums.length;
            if(n<=0)
              return;
            k = k%n;
            reverse(0,n-1,nums);
            reverse(0,k-1,nums);
            reverse(k,n-1,nums);
            return;
            
        }
        private void reverse(int start,int end,int[] nums)
        {
            while(start<=end)
            {
                int temp = nums[start];
                nums[start] = nums[end];
                nums[end] = temp;
                start++;
                end--;
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:189. Rotate Array

          本文链接:https://www.haomeiwen.com/subject/ifmhbttx.html