每天一道剑指offer-调整数组顺序使奇数位于偶数前面

  • 2019 年 10 月 4 日
  • 筆記

前言

今天的题目 每天的题目见github(看最新的日期): https://github.com/gzc426 具体的题目可以去牛客网对应专题去找。

昨天的题解

题目

每天一道剑指offer-调整数组顺序使奇数位于偶数前面 来源:牛客网对应专题

题目详述

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

题目详解

思路

  • 题目明确说了,不能修改相对位置,所以只能是用以下的新建两个数组,一个奇数数组,一个偶数数组,然后把奇数和偶数分别保存到对应的数组,然后在赋值到原数组中

代码

import java.util.ArrayList;  public class Solution {      public void reOrderArray(int [] array) {          ArrayList<Integer> odd = new ArrayList<>();          ArrayList<Integer> even = new ArrayList<>();          for(int i=0;i<array.length;i++)          {              if(array[i] % 2 == 1)              {                  odd.add(array[i]);//加入奇数数组中              }else              {                  even.add(array[i]);//加入偶数数组中              }          }          for(int i =0;i<odd.size();i++)          {              array[i] = odd.get(i);//因为奇数数组在前面,所以这样          }          for(int i = 0;i<even.size();i++)          {              array[odd.size()+i] = even.get(i);//把偶数数组赋值到后面          }      }  }

代码截图(为了避免代码排版错乱

Exit mobile version