美文网首页
LeetCode 189. Rotate Array

LeetCode 189. Rotate Array

作者: 关玮琳linSir | 来源:发表于2017-10-23 15:03 被阅读24次

    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

    Credits:

    Special thanks to @Freezen for adding this problem and creating all test cases.

    题意:翻转数组,k是要翻转多少遍。

    java代码:

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

    相关文章

      网友评论

          本文标题:LeetCode 189. Rotate Array

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