用于程序循环旋转数组的Javascript程序
给定一个数组,将数组顺时针循环旋转一圈。
例子:
Input: arr[] = {1, 2, 3, 4, 5}
Output: arr[] = {5, 1, 2, 3, 4}
以下是步骤。
1) 将最后一个元素存储在变量 x 中。
2) 将所有元素向前移动一位。
3) 用 x 替换数组的第一个元素。
Javascript
Javascript
输出
Given array is
1 2 3 4 5
Rotated array is
5 1 2 3 4
时间复杂度:O(n) 因为我们需要遍历所有元素
辅助空间:O(1)
上述问题也可以通过反转算法来解决。
另一种方法:
我们可以使用两个指针,比如i和j ,它们分别指向数组的第一个和最后一个元素。正如我们在循环旋转中所知道的,我们会将最后一个元素放在第一个元素并向前移动其余元素,因此开始交换 arr[i] 和 arr[j] 并保持 j 固定并且 i 向 j 移动。重复直到 i 不等于 j。
Javascript
输出
Given array is
1 2 3 4 5
Rotated array is
5 1 2 3 4
有关详细信息,请参阅有关将数组循环旋转 1 的完整文章!