前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指offer--调整数组顺序使奇数位于偶数前面

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

作者头像
AI那点小事
发布2020-04-20 16:19:12
2340
发布2020-04-20 16:19:12
举报

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


C++ AC代码:

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int len = array.size();
        if(len == 0){
            return;
        }
        vector<int> even;
        vector<int> odd;
        for(int i = 0 ; i < len ; i++){
            if(array[i] % 2 == 0){
                even.push_back(array[i]);
            }else{
                odd.push_back(array[i]);
            }
        }
        int cnt = 0; 
        for(int i = 0 ; i < odd.size() ; i++){
            array[cnt++] = odd[i];
        }
        for(int i = 0 ; i < even.size() ; i++){
            array[cnt++] = even[i];
        }
    }
};

Java AC代码:

import java.util.ArrayList;

public class Solution {
    public void reOrderArray(int [] array) {
        int len =array.length;
        ArrayList<Integer> odd = new ArrayList<>();
        ArrayList<Integer> even = new ArrayList<>();

        for ( int i = 0 ; i < len ; i++){
            if (array[i] % 2 == 0){
                even.add(array[i]);
            }else{
                odd.add(array[i]);
            }
        }

        int i;
        for ( i = 0 ; i < odd.size() ; i++){
            array[i] = odd.get(i);
        }
        for (int j = 0 ; j < even.size() ; j++){
            array[i++] = even.get(j);
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档