《剑指Offer》13调整数组顺序使奇数位于偶数前面

题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
直接上代码,以空间换时间
public class Solution {
    public void reOrderArray(int [] array) {
        int len=array.length;
        int odd=0;
        int even=0;
        for (int i=0; i<array.length; i++) {
            if ((array[i]&1)==1) {
                odd++;
            }else {
                even++;
            }
        }
        int[] arr1=new int[odd];
        int[] arr2=new int[even];
        int j1=0;
        int j2=0;
        for (int i=0; i<array.length; i++) {
            if ((array[i]&1)==1) {
                arr1[j1]=array[i];
                j1++;
            }else {
                arr2[j2]=array[i];
                j2++;
            }
        }
        j1=0;
        j2=0;
        for (int i=0; i<array.length; i++) {
            if (i<odd) {
                array[i]=arr1[j1];
                j1++;
            }else {
                array[i]=arr2[j2];
                j2++;
            }
        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务