Skip to content

Commit f4f357c

Browse files
authored
Add function to rotate array in-place
Implement in-place rotation of an array by k steps.
1 parent 4a126bb commit f4f357c

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
Do not return anything, modify nums in-place instead.
3+
*/
4+
export function rotate(nums: number[], k: number): void {
5+
const n = nums.length;
6+
k = k % n;
7+
8+
nums = reverse(nums, 0, n - 1);
9+
nums = reverse(nums, 0, k - 1);
10+
nums = reverse(nums, k, n - 1);
11+
};
12+
13+
function reverse(nums: number[], startIndex: number, endIndex: number): number[] {
14+
while (startIndex < endIndex) {
15+
[nums[endIndex], nums[startIndex]] = [nums[startIndex], nums[endIndex]];
16+
17+
startIndex++;
18+
endIndex--;
19+
}
20+
return nums;
21+
}

0 commit comments

Comments
 (0)