您的位置:首页 > Web前端

剑指offer 14 调整数组顺序使奇数位于偶数前面

2018-08-22 19:31 295 查看

牛客网上的题目还有一个额外的要求,就是不改变数组原始的前后数据,这种可以用队列来存储,或者把前后比较变为相邻的元素比较。

这个题目,主要要考察扩展性,用func函数就实现了扩展性。只需要改func函数,就可以实现负数移动到非负数前面,被3整除的数移到不能被3整除的数的前面

class Solution {
public:
void reOrderArray(vector<int> &array) {
int length = array.size();
if(length <= 0)
return;
int start = 0;
int end = length - 1;
while(start < end){
while(func(array[start]))
start++;
while(!func(array[end]))
end--;
if(start < end){
int tmp = array[start];
array[start] = array[end];
array[end] = tmp;
}
}
}
static bool func(int number){
if(number & 0x1)
return true;
else
return false;
}
};

 

这个题主要是将数组前后进行比较

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐