在采访中提出以下问题:
给出一个数组。任务是将数组布置为:
-元素的顺序必须保持不变。
示例:
输入: Arr = 2、4、6、8、10、1、3、5、7、9
输出: Arr = 2,1,4,3,6,5,8,7,10,9
是否存在没有恒定空间(即O(1))且在O(N)时间内的解决方案?
答案 0 :(得分:0)
如果存在n / 2个偶数元素和n / 2个奇数元素,则解决方案可能非常简单,请将“偶数指针”和“奇数指针”保留到新数组中的第一个偶数空位置,以及第一个奇数空放置在新数组上。不仅仅是遍历旧数组,将元素填充在正确的位置,并且不要忘记将指针增加2; 如果奇数元素的数量比偶数元素的数量要差-您可以发现O(n)处有多少个偶数和奇数,那么问题又很简单。