-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathright_rotate_1.java
83 lines (65 loc) · 1.55 KB
/
right_rotate_1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package matrix;
import java.util.*;
public class right_rotate_1 {
public static Scanner ss=new Scanner(System.in);
public static Random rr=new Random();
public static void print(int arr[])
{
for(int i=0;i<arr.length-1;i++)
{
System.out.print(arr[i]+",");
}
System.out.print(arr[arr.length-1]);
System.out.println();
}
//------------------using normal algotritham------------------
public static void right_rotate_array(int arr[])
{
int temp=arr[arr.length-1];
for(int i=arr.length-2;i>=0;i--)
{
arr[i+1]=arr[i];
}
arr[0]=temp;
}
public static void right_rotate_array_ktimes(int arr[],int k)
{
for(int i=0;i<k;i++)
{
right_rotate_array(arr);
}
print(arr);
}
//using revrsing k=k%arr.length(imp)
public static void reverse(int arr[], int left, int right)
{
while(left<right)
{
int temp=arr[left];
arr[left]=arr[right];
arr[right]=temp;
left++;
right--;
}
}
public static void right_rotate_array_ktimes1(int arr[], int k)
{
k=k%arr.length; // important ***********************
reverse(arr,0,arr.length-1);
reverse(arr,0,k-1);
reverse(arr,k,arr.length-1);
print(arr);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int n=ss.nextInt();
int arr[]=new int[n];
for(int i=0;i<arr.length;i++)
{
arr[i]=ss.nextInt();
}
print(arr);
int k=ss.nextInt();
right_rotate_array_ktimes1(arr,k);
}
}