LeetCode.189 Rotate Array

来源:互联网 发布:数控车床编程实例简单 编辑:程序博客网 时间:2024/06/05 23:20

题目:

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

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

分析:

class Solution {    public void rotate(int[] nums, int k) {         //给定数组,从右边倒数k个数,交换位置        //如果k大于等于数组长度,对k求mod        //思路:从需要开始移动的位置开始移动        if(k>=nums.length){            k=k%nums.length;        }        int []dummy =new int[nums.length];        //需要移动的数赋值        for(int i=0;i<k;i++){            dummy[i]=nums[nums.length-k+i];        }        for(int i=k,j=0;i<nums.length;i++,j++){            dummy[i]=nums[j];        }        //赋值        for(int i=0;i<nums.length;i++){            nums[i]=dummy[i];        }     }}        


原创粉丝点击