• 剑指Offer 调整数组顺序使奇数位于偶数前面


    题目描述

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
     
     
    思路:
    创建新的数组用来存放偶数,遍历原数组,讲偶数存放到新数组中,同时删除偶数,再将偶数数组,push_back到原数组中。
     
     1 class Solution {
     2 public:
     3     void reOrderArray(vector<int> &array) {
     4  
     5         vector<int> array_temp;
     6         vector<int>::iterator ib1, ie1;
     7         ib1 = array.begin();
     8  
     9  
    10         for (; ib1 != array.end();){            //遇见偶数,就保存到新数组,同时从原数组中删除
    11             if (*ib1 % 2 == 0) {
    12                 array_temp.push_back(*ib1);
    13                 ib1 = array.erase(ib1);
    14             }
    15             else{
    16                 ib1++;
    17             }
    18  
    19         }
    20         vector<int>::iterator ib2, ie2;
    21         ib2 = array_temp.begin();
    22         ie2 = array_temp.end();
    23  
    24         for (; ib2 != ie2; ib2++)             //将新数组的数添加到老数组
    25         {
    26             array.push_back(*ib2);
    27         }
    28     }
    29 };
  • 相关阅读:
    设计模式---工厂模式和抽象工厂模式
    设计模式---简单工厂模式
    设计模式---设计模式的分类及六大原则
    分布式---Raft算法
    分布式---Paxos算法
    分布式---CAP和BASE理论
    分布式---分布式事务
    分布式---分布式锁
    css
    react生命周期
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5760807.html
Copyright © 2020-2023  润新知