调整数组顺序使奇数位于偶数前面
C++ Solution1
class Solution {
public:
void reOrderArray(vector &array) {
for (int i = 0; i
{
for (int j = array.size()-1; j>i; j--)
{
if ((array[j] & 0x01) == 1 && (array[j-1] & 0x01) != 1)
swap(array[j], array[j-1]);
}
}
}
};
C++ Solution2
class Solution {
public:
void reOrderArray(vector &array) {
vector v1,v2;
for(auto a : array)
{
if (a&0x01)
v1.push_back(a);
else
v2.push_back(a);
}
array.clear();
array.insert(array.end(),v1.begin(),v1.end());
array.insert(array.end(),v2.begin(),v2.end());
}
};
python Solution1
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
v1,v2 = [],[]
for a in array:
if (a&0x01)==1:
v1.append(a)
else:
v2.append(a)
return v1+v2
python Solution2
class Solution(object):
def reOrderArray(self,array):
# write code here
if not array:
return
sz = len(array)
for i in range(sz):
for j in range(sz - 1, i, -1):
if (array[j] & 0x01) == 1 and (array[j - 1] & 0x01) != 1:
array[j], array[j - 1] = array[j - 1], array[j]
后记==,!= 优先级高于&,|,^
采用冒泡排序思想要从后向前走,如果从前往后遍历,前面出现多个偶数排列时将会出错
另一种解法是用空间换时间