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

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

https://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

class Solution {
public:
    void reOrderArray(vector<int> &array) {
        vector<int> vec;
        vector<int>::iterator it;
        for( it=array.begin();it!=array.end();it++)
        {
            if((*it)%2==0)
            {
                vec.push_back(*it);
                array.erase(it);
                it--;
            }
        }
        for(it=vec.begin();it!=vec.end();it++)
            array.push_back(*it);
    }
};

vector的删除erase函数是通过传入迭代器删除的,需要注意的一点是vector删除了某个元素,则下一个元素的位置会移动到当前it指向的位置,而for循环会中也会将it往后移动,无形之中就跳过了了删除元素后面的元素的遍历,所以可以在删除后将it前移一位则可解决问题

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务