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

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

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

第六十八题
方法一:知道奇数偶数的个数 就知道奇数偶数的位置
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> reOrderArray(vector<int>& array) {
        // write code here
        // 遍历,统计奇偶个数,再返回结果
        int jishu=0;
        for(int i =0;i<array.size();i++)
        {
            if(array[i]%2 == 1)
                jishu++;
        }
        vector<int> retans(array.size());
        int ji=0,ou=jishu;
        // 再遍历 直接根据奇数偶数的位置 放入数字
        for(int i =0;i<array.size();i++)
        {
            if(array[i]%2 == 1)
                retans[ji++]=array[i];
            else
                retans[ou++]=array[i];
        }
        return retans;
    }
};

方法二:
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> reOrderArray(vector<int>& array) {
        // write code here
        // 不用统计奇数偶数的个数,直接遍历 保存奇数偶数两个数组,之后再拼接起来
        vector<int> jishu;
        vector<int> oushu;
        for(int i =0;i<array.size();i++)
        {
            if(array[i]%2 == 1)
                jishu.push_back(array[i]);
            else
                oushu.push_back(array[i]);
        }
        jishu.insert(jishu.end(),oushu.begin(),oushu.end());
        return jishu;
    }
};

题解 文章被收录于专栏

一遍做剑指offer 一边保存做题步骤 并附带详细注释哦

全部评论

相关推荐

害怕一个人的小黄鸭胖乎乎:笑死了,没有技术大牛,招一堆应届生,不到半年,代码就成屎山了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务