题解 | #调整数组顺序使奇数位于偶数前面(二)#

调整数组顺序使奇数位于偶数前面(二)

http://www.nowcoder.com/practice/0c1b486d987b4269b398fee374584fc8

思路与调整数组顺序使奇数位于偶数前面(一)完全相同。这里就不赘述。
具体讲一下有差异的地方。在(一)中要求奇数之间及偶数之间的相对位置不变,那么在交换奇数偶数时就涉及到稳定性的问题,在(一)中选择使用类似插入排序的操作来保证稳定性。而在(二)中,对稳定性不做要求,这无疑降低了难度,直接交换第一个偶数及发现的奇数即可。

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> reOrderArrayTwo(vector<int>& array) {
        // write code here
        if(array.empty()){
            return array;
        }
        int firstEven = 0;
        for(int i = 0;i < array.size();i++){
            if(array.at(i) % 2 && firstEven == i){
                firstEven++;
            }
            else if(array.at(i) % 2){
                int temp = array.at(firstEven);
                array.at(firstEven) = array.at(i);
                array.at(i) = temp;
                firstEven++;
            }
        }
        return array;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务