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

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
 
 1 public class Solution {
 2     
 3     public int[] reOrderArray(int[] array) {
 4         if(array.length == 0) {
 5             return array;
 6         }
 7         int[] result = new int[array.length];
 8         int head = 0;
 9         int tail = array.length - 1;
10         int headIndex = head;
11         int tailIndex = tail;
12         while(head < array.length && tail >= 0) {
13             if(array[head] % 2 != 0) {
14                 result[headIndex] = array[head];
15                 headIndex ++;
16             }
17             head ++;
18             if(array[tail] % 2 == 0) {
19                 result[tailIndex] = array[tail];
20                 tailIndex --;
21             }
22             tail --;
23         }
24         return result;
25     }
26 }

 

posted @ 2021-05-11 10:37  StringBuilder  阅读(48)  评论(0)    收藏  举报