当前位置: 首页 > article >正文

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]
//提交版
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里面,好像默认返回的是原数组,所以有粘贴这一步)

http://www.kler.cn/a/301479.html

相关文章:

  • Gin 框架入门(GO)-1
  • 后仿真中的GLS测试用例的选取规则
  • 编写一个生成凯撒密码的程序
  • 【windows】05-windows系统级深度隐藏文件方法
  • 深度学习神经网络创新点方向
  • Flutter中的Material Theme完全指南:从入门到实战
  • Scratch中秋节游戏——玉兔收集月饼
  • 上/下三角矩阵的压缩存储
  • QML与widget
  • 如何增加Google收录量?
  • [数据结构]红黑树之插入操作(RBTree)
  • 衡石分析平台使用手册-部署前准备
  • flink中disableChaining() 的详解
  • Redis面对数据量庞大处理方法
  • Jmeter_循环获取请求接口的字段,并写入文件
  • 如何实现视频数据的PES打包和传输?
  • 【JavaSE】基础学习以及简单的计算器应用程序GUI实现
  • 【Kubernetes】常见面试题汇总(十)
  • ffmpeg编译连接报错 undefined reference to `uncompress‘
  • leetcode练习 单词搜索
  • 【区块链 + 人才服务】基于区块链技术助力人才证书数字化 | FISCO BCOS应用案例
  • wordpress建立数据库连接失败 数据库删除恢复
  • 【Linux】信号的产生、保存与处理
  • 网页时装购物系统:Spring Boot技术的实际应用
  • 【双指针】N数之和
  • [SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程