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

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

http://www.nowcoder.com/practice/ef1f53ef31ca408cada5093c8780f44b

辅助数组+双指针,同时从两头开始遍历。左边遍历的指针来检测奇数,遇到奇数往结果数组的前面放;右边的指针用来检测偶数,遇到偶数往结果数组的尾部放。时间复杂度O(n),空间复杂度O(n),思路简单,代码简单。

vector<int> reOrderArray(vector<int>& array) {
        // write code here
        int i = 0; 
        int j = array.size()-1;
        int indexi = i;
        int indexj = j;
        vector<int> res(array.size(),0);
        while(i<array.size() && j>= 0 && indexi <= indexj){
            if(array[i] & 1) res[indexi++] = array[i]; 
            if(!(array[j] & 1)) res[indexj--] = array[j];
            i++;
            j--;
        }
        return res;
}
全部评论

相关推荐

头像
10-15 22:27
已编辑
门头沟学院 C++
罗格镇的小镇做题家:我投了hr打电话来说学历太低了不符合要求,建议投荣耀,结果荣耀也投了一定水花没有,非本211硕
投递华为等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务