zoukankan      html  css  js  c++  java
  • 剑指offer(13)调整数组顺序使奇数位于偶数前面

    题目描述

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    题目分析

    判断是否为奇数,统计奇数个数,然后新建数组,把所有奇数存进去数组前面,剩下的存进去数组后面。

    代码

    function reOrderArray(array) {
      // oddBegin主要是用作奇数的索引,oddCount是用作偶数的索引,newArray用来存储,以空间换时间,复杂度为O(n)
      let oddBegin = 0,
        oddCount = 0;
      const newArray = [];
      for (let i = 0; i < array.length; i++) {
        if (array[i] & 1) {
          oddCount++;
        }
      }
      for (let i = 0; i < array.length; i++) {
        if (array[i] & 1) {
          newArray[oddBegin++] = array[i];
        } else {
          newArray[oddCount++] = array[i];
        }
      }
      return newArray;
    }
  • 相关阅读:
    Java面向对象编程之异常处理机制
    LinkedList链式集合
    Java之反射机制
    适配器模式
    QuickHit
    Java之单例模式
    Java面向对象之接口
    多线程
    线程同步
    试题分析
  • 原文地址:https://www.cnblogs.com/wuguanglin/p/reOrderArray.html
Copyright © 2011-2022 走看看