C++程序 旋转所有奇数到右侧和所有偶数到左侧
给定由 N 个在 [1,N] 范围内的数组 A[] 组成的排列数组,任务是左旋转排列的所有偶数并右旋转所有奇数,并打印更新后的排列。
注意: N总是偶数。
示例:
输入: A = {1, 2, 3, 4, 5, 6, 7, 8}
输出: {7, 4, 1, 6, 3, 8, 5, 2}
解释:
偶数元素 = {2, 4, 6, 8}
奇数元素= {1, 3, 5, 7}
偶数左旋 = {4, 6, 8, 2}
奇数右旋 = {7, 1, 3, 5}
将奇数和偶数数值按顺序合并在一起.
输入: A = {1, 2, 3, 4, 5, 6}
输出: {5, 4, 1, 6, 3, 2}
方法:
- 显然,奇数元素总是在偶数索引上,偶数元素总是在奇数索引上.
- 要将偶数左旋,我们只选择奇数索引.
- 要将奇数右旋,我们只选择偶数索引.
- 打印更新的数组.
以下是上述方法的实施:
输出:
时间复杂度: O(N)
辅助空间: O(1)