题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
牛客上的这道题比剑指offer多了一个条件,就是要保证奇数和奇数,偶数和偶数之间的相对位置不变。
最简单的思路就是新建一个空间,扫两遍,第一遍把所有的奇数放进去,第二遍把所有的偶数放进去。
python题解:
class Solution:
def reOrderArray(self, array):
# write code here
result=[]
for a in array:
if self.judgeji(a):
result.append(a)
for b in array:
if not self.judgeji(b):
result.append(b)
return result
def judgeji(self,x):
if x&1==1:
return True
else:
return False
C++题解:
class Solution {
public:
void reOrderArray(vector<int> &array) {
vector<int> result;
int len=array.size();
for(int i=0;i<len;i++){
if(array[i]%2!=0)
result.push_back(array[i]);
}
for(int i=0;i<len;i++){
if(array[i]%2==0)
result.push_back(array[i]);
}
array=result;
}
};