调整数组使奇数位于偶数前面(且相对位置不能改变)

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

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

class Solution {
public:
    /**
       1.冒泡排序,空间复杂度为O(1)
        2.空间复杂度O(n)
        3.相对位置可以改变可以用快速排序
     */
    vector<int> reOrderArray(vector<int>& array) {
        int flag = true;
        while (flag) {
            flag = false;
            for (int i = 1; i < array.size(); ++i) {
                if(array[i-1]%2==0 && array[i]%2){
                    flag = true;
                    swap(array[i-1],array[i]);
                }
            }
        }
        return array;
    }
// 多声明一个O(n)空间
   vector<int> reOrderArray(vector<int>& array) {
        vector<int> res;
        for (auto n: array) {
            if (n % 2) {
                res.push_back(n);
            }
        }
        for (auto n: array) {
            if (n % 2==0) {
                res.push_back(n);
            }
        }
        return res;
    }

};
全部评论

相关推荐

投递网易等公司10个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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