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

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

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

小白解法:
思路,若是选出奇偶,然后插到前面,太麻烦,后续还要移动后面的数字,考虑另建数组,选出奇偶放入。
我的解法:先找奇数,放入数组,再找偶数放入数组,这样做法时间复杂度O(2N),空间复杂度O(N)。
代码如下:

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param array int整型vector 
     * @return int整型vector
     */
    vector<int> reOrderArray(vector<int>& array) {
        // write code here
        vector<int>ou;
        int l = array.size();

        for(int i=0;i<l;i++){
            if(array[i]%2 == 1)
                ou.push_back(array[i]);
        }
        for(int i=0;i<l;i++){
            if(array[i]%2 == 0)
                ou.push_back(array[i]);
        }
        return ou;
    }
};

后来看到别人的解法,瞬间觉得自己好差劲,既然偶数在后,奇数在前,设置首尾指针不就好了,首指针找奇数,放到前面;尾指针找偶数,从后往前放。这样只需要遍历一次数组就可。

全部评论

相关推荐

在写周报的打工人很独...:这个笔试昨天晚上做了一下,真难啊,前后端,ai全有
点赞 评论 收藏
分享
Tom哥981:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务