第十三题:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路:定义两个数组,分别用来存放奇数和偶数,最后再先后放回array中。
Python:
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
#奇数数组
array_odd = []
#偶数数组
array_even = []
for x in array:
if x % 2 == 1:
array_odd.append(x)
else:
array_even.append(x)
array = array_odd + array_even
return array
Java:
import java.util.ArrayList;
public class Solution {
public void reOrderArray(int [] array) {
ArrayList<Integer> array_odd = new ArrayList<Integer>();
ArrayList<Integer> array_even = new ArrayList<Integer>();
for(int i=0;i<array.length;i++){
if(array[i] % 2 == 1)
array_odd.add(array[i]);
else
array_even.add(array[i]);
}
for(int i=0;i < array_odd.size();i++){
array[i] = array_odd.get(i);
}
for(int i=0;i < array_even.size();i++){
array[i+array_odd.size()] = array_even.get(i);
}
}
}