
简单来说就是设置两个指针,一个从前向后遍历,另一个从后向前遍历。当前面的指针遇到偶数,后面的指针遇到奇数且前一个指针在后一个指针之前是交换两个数字。
具体代码如下:
class Solution {
public:
void reOrderArray(vector<int> &array) {
int i = 0, j = array.size() - 1;
while(i < j){
while(i < j && (array[i] & 1)) i++;
while(i < j && (array[j] & 1) == 0) j--;
if(i < j) swap(array[i], array[j]);
}
}
};
博客介绍了一种交换数字的方法,设置两个指针,一个从前向后遍历,另一个从后向前遍历。当前面指针遇到偶数,后面指针遇到奇数且前者在后者之前时,交换两个数字,并给出了具体代码。
1000

被折叠的 条评论
为什么被折叠?



