轮转数组(Java)

简介: 轮转数组(Java)

轮转数组(Java)


给你一个数组,将数组中的元素向右轮转 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]

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/rotate-array

今天在LeetCode上写轮转数组这一题,我自己写的在idea上也能运行,输出,没毛病,死活在LeetCode上不通过,后来在网上也看了一些代码,找到了一种比较高效的在最下面:

下面是我自己写的代码(LeetCode上没通过那个)

public class Main54 {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8,9,10};
        int k = 3;
        int[] x = new int[nums.length];
        int l = nums.length-k;
        for(int i = 0 ;i < k;i++){
            x[i] = nums[l];
            l++;
        }
        int n = 0;
        for (int d = k;d < nums.length; d++ ){
            x[d] = nums[n];
            n++;
        }
        for(int q = 0;q < x.length;q++){
            System.out.print(x[q] + " ");
        }
    }
}

回来实在没办法了,在CSDN上看了一些代码,

发现MOD比较好用(利用余数轮转数组,顶级思路)

(这个是LeetCode上通过的)

 public void rotate(int[] nums, int k) {
         int len = nums.length;
         int[] arr = new int[len];
         for(int i = 0;i < len;i++){
          // (i + k)%len利用余数轮转数组,顶级思路
             arr[(i + k)%len] = nums[i];
         }
         //把arr数组赋值给nums数组
         for(int i = 0;i < len;i++){
             nums[i] = arr[i];
         }
    }
相关文章
|
29天前
|
存储 Java 索引
Java快速入门之数组、方法
### Java快速入门之数组与方法简介 #### 一、数组 数组是一种容器,用于存储同种数据类型的多个值。定义数组时需指定数据类型,如`int[]`只能存储整数。数组的初始化分为静态和动态两种: - **静态初始化**:直接指定元素,系统自动计算长度,如`int[] arr = {1, 2, 3};` - **动态初始化**:手动指定长度,系统给定默认值,如`int[] arr = new int[3];` 数组访问通过索引完成,索引从0开始,最大索引为`数组.length - 1`。遍历数组常用`for`循环。常见操作包括求和、找最值、统计特定条件元素等。
|
30天前
|
存储 Java 索引
Java基础(六):数组
Java基础(六):数组
Java基础(六):数组
|
28天前
|
存储 Java C++
Java数组:静态初始化与动态初始化详解
本文介绍了Java中数组的定义、特点及初始化方式。
61 12
|
4月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
48 4
|
4月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
61 2
|
4月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
127 2
|
4月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
73 9
|
4月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
43 3
|
4月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
48 1
|
4月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
48 0

热门文章

最新文章