欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【剑指Offer】JZ13调整数组顺序使奇数位于偶数前面 Tag:[数组]

程序员文章站 2022-03-26 11:12:39
JZ13调整数组顺序使奇数位于偶数前面 tag:数组题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路有一个非常讨巧的方法~可以直接开辟一个辅助数组,遍历一次数组,把所有的奇数放进数组当中,再遍历一次数组,把所有的偶数放入数组当中即可。代码部分import java.util.ArrayList;public class Solution {...

JZ13调整数组顺序使奇数位于偶数前面

    tag:数组

题目描述

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

解题思路

有一个非常讨巧的方法~
可以直接开辟一个辅助数组,遍历一次数组,把所有的奇数放进数组当中,再遍历一次数组,把所有的偶数放入数组当中即可。

代码部分

import java.util.ArrayList;
public class Solution {
    public void reOrderArray(int [] array) {
        /**
        * 奇数
        */
        //int[] odd = new int[array.length];
        /**
        * 偶数
        */
        //int[] even = new int[array.length];
        
        ArrayList<Integer> result = new ArrayList<>();
        for(int i : array){
            if(i%2 != 0){
                result.add(i);
            }
        }
        for(int i : array){
            if(i%2 == 0){
                result.add(i);
            }
        }
        
        for(int i=0 ; i<result.size();i++){
            array[i] = result.get(i);
        }
        
    }
}

时间复杂度:O(n)
空间复杂度:O(n)

还有其他的方法,后续再来补充~

本文地址:https://blog.csdn.net/Firelearn/article/details/109994242