题解 | #调整数组顺序使奇数位于偶数前面#

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

http://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b

题目

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

思路

新创建一个ArrayList集合,遍历循环题目给出的数组,对每一个元素进行求余操作,如果%2==1,说明是奇数,ArrayList集合添加该元素;再进行一次循环,如果%2==1,说明是偶数,ArrayList集合添加该元素,如此ArrayList集合中的元素就按照奇数在前,偶数在后,且每个元素的相对位置不变。但是ArrayList并不是我们想要的,返回的应该是一个int型的一维数组,所以新定义一个int[] arr = new int[array.length];遍历循环ArrayList集合把每个元素添加进arr数组中。

代码

import java.util.*;

public class Solution {
    public int[] reOrderArray (int[] array) {
        //如果数组长度为空,返回一个空的int型一维数组
        if(array.length == 0){
            return new int[0];
        }else{
            ArrayList arrayList = new ArrayList();
            for(int i=0;i<array.length;i++){
                if(array[i]%2 == 1){
                    //奇数
                    arrayList.add(array[i]);
                }
            }
            for(int i=0;i<array.length;i++){
                if(array[i]%2 == 0){
                    //偶数
                    arrayList.add(array[i]);
                }
            }

            int[] arr = new int[array.length];
            for(int i=0;i<arrayList.size();i++){
                //因为ArrayList集合是Object类型,所以需要转成Integer型
                arr[i] = (Integer)arrayList.get(i);
            }
            return arr;
        }

    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-22 11:33
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务