调整数组顺序,c++

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        int length = array.size();
        int count = 0;
        queue<int> even;

        for (int i = 0; i != length; ++i){
            if (array[i]%2)
                array[i - count] = array[i];
            else{
                even.push(array[i]);
                ++count;
            }
        }

        for (int i = length - count; i != length; ++i){
            array[i] = even.front();
            even.pop();
        }
    }
};

很low的一个方法,遍历整个向量,遇到偶数压入队列,遇到奇数往前移动
1、count是一个重要计数量,记录当前遇到的偶数个数,在奇数移动和后边偶数插入都有用
欢迎交流指正!!!

全部评论

相关推荐

想润的芹菜人狠话不多:把其中一个老总放中间都会得罪另一个
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务