题解 | #牛群的奇偶分类# 模拟

牛群的奇偶分类

https://www.nowcoder.com/practice/506bb32ff0d448d1885ac18542169265

新建一个 ans 数组保存返回结果

使用偶数指针和技术指针修改 ans 数组,偶数指针一开始位于 ans[0] ,奇数指针一开始位于 ans[n-1]

遍历 nums 数组,如果为偶数,直接修改对应位置 ans 数组,同时偶数指针加 1

遍历 nums 数组,如果为奇数,直接修改对应位置 ans 数组,同时奇数指针减 1

最后别忘了反转 奇数指针到最后的位置

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @return int整型vector
     */
    vector<int> reorderCows(vector<int>& nums) {
        int n = nums.size();
        vector<int> ans(n, 0);
        int even = 0, odd = n - 1;
        for (int i = 0; i < n; i++) {
            if (nums[i] % 2 == 0) {
                ans[even] = nums[i];
                even++;
            } else {
                ans[odd] = nums[i];
                odd--;
            }
        }
        reverse(ans.begin() + odd + 1, ans.end());
        return ans;
    }
};

时间复杂度:O(n),遍历 nums 数组 O(n),反转 ans 数组O(n)

空间复杂度:O(n),存储 ans 数组

全部评论

相关推荐

点赞 评论 收藏
分享
06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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