您的位置:首页 > Web前端

剑指offer — 调整数组顺序使奇数位于偶数前面

2017-12-19 18:52 393 查看
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变

(1) 该题目要求保持相对的顺序,因此可以使用一个额外的存储空间

java

import java.util.*;
public class Solution {
public void reOrderArray(int [] array) {
if (array == null || array.length == 0) {
return;
}
Queue<Integer> queue = new LinkedList<>();
int p1 = 0;
int p2 = 0;
while (p1 < array.length) {
if ((array[p1] & 1) == 0) {
queue.offer(array[p1++]);
} else {
array[p2++] = array[p1++];
}
}
while (!queue.isEmpty()) {
array[p2++] = queue.poll();
}
}
}

(2)如果不要求保持顺序的话,可以直接使用双指针的方法去处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: