题解 | #调整数组顺序使奇数位于偶数前面(二)#
调整数组顺序使奇数位于偶数前面(二)
http://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8
第七十九题
要么直接用1的代码 也都对的,要么像快拍一样 双指针 交换左右两边的位置
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
vector<int> reOrderArrayTwo(vector<int>& array) {
// write code here
int left = 0,right = array.size()-1;
// 和快拍一样 左右指针交换
// 找到左边第一个不是奇数,右边第一个不是偶数 两个交换
// 循环结束条件 左边指针>=右边指针
while(left < right){
while(left < right && array[left]%2 == 1)
left++;
while(left < right && array[right]%2 == 0)
right--;
swap(array[left],array[right]);
}
return array;
}
};
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型vector
* @return int整型vector
*/
vector<int> reOrderArrayTwo(vector<int>& array) {
// write code here
int left = 0,right = array.size()-1;
// 和快拍一样 左右指针交换
// 找到左边第一个不是奇数,右边第一个不是偶数 两个交换
// 循环结束条件 左边指针>=右边指针
while(left < right){
while(left < right && array[left]%2 == 1)
left++;
while(left < right && array[right]%2 == 0)
right--;
swap(array[left],array[right]);
}
return array;
}
};
题解 文章被收录于专栏
一遍做剑指offer 一边保存做题步骤 并附带详细注释哦