Text Practice Mode
Rotate Array inplace C#
created Sep 5th 2018, 14:32 by Gregory L
3
86 words
36 completed
5
Rating visible after 3 or more votes
saving score / loading statistics ...
00:00
public static void Rotate(int[] nums, int k)
{
int size = nums.Length;
if (size <= 1 || k <= 0)
{
return;
}
int shift = k % size;
var dict = new Dictionary<int, int>();
for (int i = 0; i < size; i++)
{
int to = (i + shift) % size;
if (i < to)
{
dict.Add(i, nums[i]);
}
int from = (i - shift + size) % size;
if (!dict.TryGetValue(from, out var fromVal))
{
fromVal = nums[from];
}
nums[i] = fromVal;
}
}
{
int size = nums.Length;
if (size <= 1 || k <= 0)
{
return;
}
int shift = k % size;
var dict = new Dictionary<int, int>();
for (int i = 0; i < size; i++)
{
int to = (i + shift) % size;
if (i < to)
{
dict.Add(i, nums[i]);
}
int from = (i - shift + size) % size;
if (!dict.TryGetValue(from, out var fromVal))
{
fromVal = nums[from];
}
nums[i] = fromVal;
}
}
