-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathLeftRotation.cs
More file actions
77 lines (57 loc) · 2.3 KB
/
LeftRotation.cs
File metadata and controls
77 lines (57 loc) · 2.3 KB
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
// A left rotation operation on an array of size shifts each of the array's elements unit to the left. For example, if left rotations are performed on array , then the array would become .
// Given an array of integers and a number, , perform left rotations on the array. Then print the updated array as a single line of space-separated integers.
// Input Format
// The first line contains two space-separated integers denoting the respective values of (the number of integers) and (the number of left rotations you must perform).
// The second line contains space-separated integers describing the respective elements of the array's initial state.
// Constraints
// Output Format
// Print a single line of space-separated integers denoting the final state of the array after performing left rotations.
// Sample Input
// 5 4
// 1 2 3 4 5
// Sample Output
// 5 1 2 3 4
// Explanation
// When we perform left rotations, the array undergoes the following sequence of changes:
// Thus, we print the array's final state as a single line of space-separated values, which is 5 1 2 3 4.
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;
class Solution {
private static void LeftShift(int d, int[] arr)
{
var shifted = new int[arr.Length];
var shiftIndex = (shifted.Length-1 * d) % shifted.Length;
shifted[(shifted.Length-1 * d) % shifted.Length] = arr[0];
for (var i=1; i < arr.Length; i++)
{
shifted[(shiftIndex + i) % shifted.Length] = arr[i];
}
PrintArr(shifted);
}
private static void PrintArr(int[] arr)
{
foreach (var value in arr)
{
Console.Write(value + " ");
}
}
static void Main(string[] args) {
string[] nd = Console.ReadLine().Split(' ');
int n = Convert.ToInt32(nd[0]);
int d = Convert.ToInt32(nd[1]);
int[] a = Array.ConvertAll(Console.ReadLine().Split(' '), aTemp => Convert.ToInt32(aTemp))
;
LeftShift(d,a);
}
}