七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

轮转数组:数组轮换与添加

写作时间:2026-07-09 14:55:54

给定一个数组nums,将数组向右轮换k个位置,其中k为非负整数。

是什么?

数组轮换

怎么做?

其实就是前面的往后挪,挪到边界就提前

思考

七七看到题目想到的很简单,每次挪一个,然后k为多少就挪多少次,每次都用一个数组装着!好复杂啊!所以找灵宝优化了一下代码

代码

class Solution {
    public void rotate(int[] nums, int k) {
//定义长度和数组
        int n = nums.length;
        int[] rotated = new int[n];
//数学逻辑:(i + k) % n 确保新索引合法,七七数学不好,已经准备当公式背了。。。。
        for (int i = 0; i < n; i++) {
            rotated[(i + k) % n] = nums[i];
        }
//第二次看到这个东西了,原数组,原数组起始位置,新数组,新数组起始位置,长度,然后添加!!!
        System.arraycopy(rotated, 0, nums, 0, n);
    }
}

这道题目力扣定义为中等,其实七七觉得应该是简单题目吧!这里有一个数学方法,七七就不理解了,当公式背了,值得一提的是,这个数学直接就实现了翻转,技术直接偷掉啦!

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents