Rotate an array n times left or right

Rotate array from left to right or right to left.


import java.util.Arrays;

public class RotateArray {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 6, 7 };
int[] arr1 = { 1, 2, 3, 4, 5, 6, 7 };
int k = 3;
System.out.println("rotate array "+k+" times.\n"+Arrays.toString(arr));
System.out.println("Left rotate  "+k+" times.\n"+Arrays.toString(leftrotate(arr, k)));
System.out.println("Right rotate "+k+" times.\n"+Arrays.toString(rightrotate(arr1, k)));
}

public static int[] leftrotate(int[] nums, int k) {
int x = 0;
while (x < k) {
int first = nums[0];
for (int i = 1; i < nums.length; i++) {
if (i == nums.length - 1) {
nums[i - 1] = nums[i];
nums[i] = first;
} else {
//System.out.println(i + " " + nums[i] + "  " + nums[i - 1]);
nums[i - 1] = nums[i];
}
}
x++;
//System.out.println(Arrays.toString(nums));
}
return nums;
}
public static int[] rightrotate(int[] nums, int k) {
int x = 0;
while (x < k) {
int first = nums[nums.length-1];
for (int i = nums.length-1; i >=0; i--) {
if(i==0) {
nums[i] = first;
}else {
nums[i] = nums[i-1];
}
}
x++;
//System.out.println(Arrays.toString(nums));
}
return nums;
}
 }



Post a Comment

Previous Post Next Post