Array Rotation in Java2025年3月29日 | 阅读 6 分钟 在本节中,我们将学习什么是数组旋转以及如何通过 Java 程序旋转数组。 Java 数组旋转数组旋转简单来说就是将数组的元素移动到指定的位置。我们可以向两个方向旋转数组,即顺时针和逆时针。我们可以对数组执行任意次数的旋转。 旋转类型
左旋在左旋中,数组元素会向左移动指定的位数。它以顺时针方向旋转数组。在旋转中,索引最小的元素会移动到索引最大的位置。 ![]() 示例 假设,[1, 2, 3, 4, 5] 是一个数组,我们需要对数组执行2 次左旋,则数组将变为 给定数组 = [1, 2, 3, 4, 5] 第一次左旋后的数组 = [2, 3, 4, 5, 1] 第二次左旋后的数组 = [3, 4, 5, 1, 2] ArrayLeftRotation.java 输出 ![]() 右旋在右旋中,数组元素会向右移动指定的位数。它以逆时针方向旋转数组。 ![]() 示例 假设 [4, 7, 9, 0, 1] 是一个数组,我们需要对数组执行2 次左旋,则数组将变为 给定数组 = [4, 7, 9, 0, 1] 第一次左旋后的数组 = [1, 4, 7, 9, 0] 第二次左旋后的数组 = [0, 1, 4, 7, 9] ArrayRightRotation.java 输出 ![]() 如何旋转数组?有以下四种旋转数组的方法
使用临时数组输入数组[] = [11, 22, 33, 44, 55],旋转次数 (r) = 2,元素数量 (n) = 5 1. 将前 r 个元素存储在临时数组中。 2. 将其余数组向左移动。 3. 之后,将临时数组[]的元素追加到数组[]。 逐个旋转元素使用杂耍算法杂耍算法是第二种方法(逐个旋转元素)的进阶版本。该算法将整个数组划分为不同的集合。我们可以通过查找 r 和 n 的 GCD 来找到集合的数量。在获得集合后,在集合内移动元素。让我们通过一个例子来理解该算法。 假设,a[] 是一个包含 12 (n) 个元素的数组(1, 2, 3,……, 12),我们需要执行 3 (d) 次旋转,则根据算法 n 和 d 的 GCD = 3 元素首先在第一个集合中移动。移动后,我们得到以下数组 {4, 2, 3, 7, 5, 6, 10, 8, 9, 1, 11, 12} 第二个集合中的元素移动。 {4, 5, 3, 7, 8, 6, 10, 11, 9, 1, 2, 12} 最后,第三个集合中的元素移动。 {4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3} 让我们用 Java 程序来实现上述方法。 JugglingAlgo.java 输出 ![]() 通过反转数组思路是反转输入数组的最后 k 个元素,然后反转剩余的 n-k 个元素。使用这种机制,通过反转整个数组,我们可以得到右旋后的数组。 RotateReverse.java 输出 ![]() |
Java 中的内存管理 在 Java 中,内存管理是指对象的分配和去分配过程,称为内存管理。Java 会自动进行内存管理。Java 使用称为垃圾收集器的自动内存管理系统。因此,我们不需要实现内存管理逻辑...
14 分钟阅读
在本节中,我们将通过 Java 程序讨论计算从 1 到 n 的所有数字的数位和的方法。示例:输入:num = 7 输出:1 到 7 的数字中所有数位的总和为:1 + 2 + 3 + 4 +……
阅读9分钟
空对象设计模式是一种行为设计模式,它使用多态性来消除代码中进行空检查的需要。我们不使用空引用来表示对象的缺失,而是提供一个具有所需功能的默认“空”对象...
7 分钟阅读
Java 中的参数传递是指在方法或函数之间传输数据的机制。Java 支持两种类型的参数传递技术:值传递和引用传递。理解这些技术对于有效利用 Java 中的方法参数至关重要。参数类型:1. 正式参数:变量及其对应的数据类型是...
阅读 4 分钟
给定一个字符串,我们的任务是使用最多 N/2 次移动来排序一个由前 N 个不同字母组成的字符串。每次移动包括以下步骤:选择任何三个不同的索引。在这些索引处,执行循环移位...
11 分钟阅读
? PriorityQueue 是 Java 中使用的一种数据结构,它根据优先级排列用户信息。可以使用构造函数或循环在 PriorityQueue 之间复制元素。总的来说,构造函数方法是最简单有效的方法...
5 分钟阅读
在开发软件应用程序时,尤其是命令行程序时,通常使用菜单驱动的方法,为用户提供与应用程序交互的清晰有组织的途径。Java 作为一种用途广泛且广泛使用的编程语言,为实现菜单驱动程序提供了完美的平台。在...
7 分钟阅读
N 叉树到二叉树的转换是计算机科学中的一项标准操作,用于在保持层次结构的同时降低复杂性。N 叉树允许每个节点有多个子节点,这使得使用标准树结构难以管理。为了有效地表示 N 叉...
5 分钟阅读
在 Java 中,继承使一个类能够采用另一个类的行为和功能。从中继承功能和行为的类被称为基类、父类或超类。接收类通常被称为子类,...
阅读 4 分钟
Java 的 'ByteBuffer' 是一个固定数量字节的容器。'ByteBuffer' 的大小是它可以容纳的字节数,并且在创建 'ByteBuffer' 时确定。我们可以使用...使用特定字节大小的 'ByteBuffer'...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India