0
点赞
收藏
分享

微信扫一扫

轮转数组(中等)

拾杨梅记 2022-01-26 阅读 28
javaleetcode

题目描述

示例1

示例2

做题思路

知识点

代码

class Solution {
    public void rotate(int[] nums, int k) {
        k=k%nums.length;//此处考虑到k大于数组长度的情况
        reverse(nums,0,nums.length-1);//将整个数组逆序
        reverse(nums,0,k-1);//将区间[0,k-1]的数组逆序
        reverse(nums,k,nums.length-1);//将区间[k,nums.length-1]的数组逆序
    }

    //数组逆序
    public void reverse(int[] nums,int head,int tail){
        for(int i=head,j=tail;i<j;i++,j--){
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
    }
}
举报

相关推荐

0 条评论