class Main {
public static int[] rotate(int[] nums, int k) {
k = k%nums.length;
//Reverse complete array once
reverse(0, nums.length-1, nums, k);
//Reverse first k number
reverse(0, k-1, nums, k);
//Reverse Remaning number
reverse(k, nums.length-1,nums,k);
return nums;
}
public static void reverse(int start, int end, int[]arr, int k){
int i=start;
int j=end;
while(i<j){
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
i++;
j--;
}
}
public static void main(String[] args) {
int[] nums = {1,2,3,4,5,6,7};
int k=3;
rotate(nums, 3);
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}