Leetcode Hot 100刷题记录 -Day12(轮转数组)

轮转数组

问题描述:

给定一个整数数组 nums,将数组中的元素向右轮转 k个位置,其中 k是非负数。

示例 1:

复制代码
输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]

解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:

复制代码
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释: 
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]
java 复制代码
//提交版
class Solution {
   public int[] rotate(int[] nums, int k){
        int n = nums.length;
        int[] newarry = new int[n];
        for (int i =0;i <nums.length;i++){
            newarry[(i+k)%n] = nums[i];
        }
        //将 nums 数组中的前 n 个元素从索引 0 开始复制到 newarry 数组中,从索引 0 开始粘贴
        System.arraycopy(newarry,0,nums,0,n);
        return nums;
    }
}


//带有输入输出
import java.util.Arrays;

public class hot13_rotate {
    public int[] rotate(int[] nums, int k){
        int n = nums.length;
        int[] newarry = new int[n];
        for (int i =0;i <nums.length;i++){
            newarry[(i+k)%n] = nums[i];
        }
        //将 nums 数组中的前 n 个元素从索引 0 开始复制到 newarry 数组中,从索引 0 开始粘贴
        System.arraycopy(newarry,0,nums,0,n);
        return nums;
    }

    public static void main(String[] args){
        int[] nums = {1,2,3,4,5,6,7};
        int k =3;
        System.out.println("输入:nums = " + Arrays.toString(nums) + "  k = " + k);
        hot13_rotate hot13Rotate = new hot13_rotate();
        int[] result = hot13Rotate.rotate(nums, k);
        System.out.println("输出:nums = " + Arrays.toString(result));
    }
}

知识点总结:

  • System.arraycopy函数:将 nums 数组中的前 n 个元素从索引 0 开始复制到 newarry 数组中,从索引 0 开始粘贴(其实在本题中不用粘贴理论上也可以,返回新创建的那个数组就可以,但是在LeetCode里面,好像默认返回的是原数组,所以有粘贴这一步)
相关推荐
光影少年1 小时前
AI Agent、自动化与未来工作
人工智能·算法·架构
鸥梨菌Honevid1 小时前
UVM 中 REQ 和 RSP 类型详解:从通信模型到 item_done 与 put_response
java·前端·servlet
瑞克-桑切斯1 小时前
真实企业场景 运维安全与管理
java·网络·github
牧羊人.3331 小时前
计算机视觉基础 第16章|EigenFace,FisherFace,LBPH传统人脸识别算法
人工智能·算法·计算机视觉
jeo陽1 小时前
04-循环实战:素数、最大公约数、级数求和与枚举法
c语言·开发语言·数据结构
Nil2081 小时前
leetcode 72编辑距离
算法·leetcode·职场和发展
老板一杯拿铁1 小时前
Java 八股文面试详解:从基础到进阶的全面梳理
java·面试
const_qiu1 小时前
第 2.5 章 2.5.4-2.5.5:JWT 双 Token 与声明式权限守卫
java·人工智能
bug菌1 小时前
一个周末就想把短链服务推到 10 万 QPS,真能靠加 Redis 做到吗?
java·redis·go
撸串-研究生1 小时前
springboot福利院管理系统73979
java·spring boot·后端·福利院管理系统