mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-26 05:59:22 +08:00
45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package com.thealgorithms.others;
|
|
|
|
/**
|
|
* Provides a method to perform a left rotation on an array.
|
|
* A left rotation operation shifts each element of the array
|
|
* by a specified number of positions to the left.
|
|
*
|
|
* @author sangin-lee
|
|
*/
|
|
public final class ArrayLeftRotation {
|
|
private ArrayLeftRotation() {
|
|
}
|
|
|
|
/**
|
|
* Performs a left rotation on the given array by the specified number of positions.
|
|
*
|
|
* @param arr the array to be rotated
|
|
* @param n the number of positions to rotate the array to the left
|
|
* @return a new array containing the elements of the input array rotated to the left
|
|
*/
|
|
public static int[] rotateLeft(int[] arr, int n) {
|
|
int size = arr.length;
|
|
|
|
// Handle cases where array is empty or rotation count is zero
|
|
if (size == 0 || n <= 0) {
|
|
return arr.clone();
|
|
}
|
|
|
|
// Normalize the number of rotations
|
|
n = n % size;
|
|
if (n == 0) {
|
|
return arr.clone();
|
|
}
|
|
|
|
int[] rotated = new int[size];
|
|
|
|
// Perform rotation
|
|
for (int i = 0; i < size; i++) {
|
|
rotated[i] = arr[(i + n) % size];
|
|
}
|
|
|
|
return rotated;
|
|
}
|
|
}
|