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

来源:互联网 发布:mac book 能做什么 编辑:程序博客网 时间:2024/06/07 05:48

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

(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)如果不要求保持顺序的话,可以直接使用双指针的方法去处理

阅读全文
0 0
原创粉丝点击