LeetCode189:旋转数组

Posted 架构师夏老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode189:旋转数组相关的知识,希望对你有一定的参考价值。

思路:

1.先把最后一个数字记录下来

2.把右边除了最后一个往右移动一位,最后把最后一个记录下来的数字放在位置为0的位置

3.以上的方式循环k次

public static void rotate(int[] numbers, int k) 
        k = k % numbers.length;
        int temp = 0;
        for (int i = 0; i < k; i++) 
            temp = numbers[numbers.length - 1];
            for (int j = numbers.length-1; j > 0; j--) 
                numbers[j] = numbers[j-1];
            
            numbers[0] = temp;
        
    

时间复杂度O(n*k)

 

知识点:

1.数组向后移动模版

 for (int j = numbers.length-1; j > 0; j--) 
       numbers[j] = numbers[j-1];
 

 

以上是关于LeetCode189:旋转数组的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 189.旋转数组 By Python

LeetCode 189 Rotate Array(旋转数组)

旋转数组leetcode 189

LeetCode 189 旋转数组

LeetCode:189. 旋转数组

LeetCode:189. 旋转数组(python3)