Javascript程序在1到N的数组中向右旋转所有奇数和向左旋转所有偶数
给定一个由[1, N]范围内的N个数字组成的排列数组A[] ,任务是左旋转排列的所有偶数,右旋转排列的所有奇数并打印更新后的排列。
注意: N 总是偶数。
例子:
Input: A = {1, 2, 3, 4, 5, 6, 7, 8}
Output: {7, 4, 1, 6, 3, 8, 5, 2}
Explanation:
Even element = {2, 4, 6, 8}
Odd element = {1, 3, 5, 7}
Left rotate of even number = {4, 6, 8, 2}
Right rotate of odd number = {7, 1, 3, 5}
Combining Both odd and even number alternatively.
Input: A = {1, 2, 3, 4, 5, 6}
Output: {5, 4, 1, 6, 3, 2}
方法:
- 很明显,奇数元素总是在偶数索引上,偶数元素总是在奇数索引上。
- 为了对偶数进行左旋转,我们只选择奇数索引。
- 为了对奇数进行右旋转,我们只选择偶数索引。
- 打印更新的数组。
下面是上述方法的实现:
Javascript
输出:
5 4 1 6 3 2
时间复杂度: O(N)
辅助空间: O(1)
请参阅完整的文章在 1 到 N 的数组中向右旋转所有奇数和向左旋转所有偶数以获取更多详细信息!