zoukankan      html  css  js  c++  java
  • 剑指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 };
  • 相关阅读:
    day20:正则表达式
    day19:os模块&shutil模块&tarfile模块
    zynq之TF卡写入常见问题
    verilog之random
    quartus之ram的IP测试
    verilog之readmemb
    verilog之monitor
    verilog之display
    源自opencore的fifo的IP核解析
    veriog之四位全加器
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5760807.html
Copyright © 2011-2022 走看看