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

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

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前移一位则可解决问题

全部评论

相关推荐

2025-12-18 18:23
深圳大学 前端工程师
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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