轮转数组(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];
         }
    }
相关文章
|
2月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
33 4
|
2月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
40 2
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
95 2
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
55 9
|
2月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
26 3
|
2月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
31 6
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
34 1
|
2月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
18 1
|
2月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
39 0
|
2月前
|
存储 机器学习/深度学习 Java
【Java】数组详解
【Java】数组详解
31 0
下一篇
DataWorks