LeetCode day 1

复制代码
class Solution {
public:
    vector<int> sortArrayByParityII(vector<int>& nums) {
        int n = nums.size();
        vector<int> even; // 存储偶数
        vector<int> odd;  // 存储奇数

        // 将奇数和偶数分别放入对应的数组
        for (int num : nums) {
            if (num % 2 == 0) {
                even.push_back(num);
            } else {
                odd.push_back(num);
            }
        }

        vector<int> result(n);

        // 从奇数数组和偶数数组中交替取出元素
        for (int i = 0; i < n; ++i) {
            if (i % 2 == 0) {
                result[i] = even.back();
                even.pop_back();
            } else {
                result[i] = odd.back();
                odd.pop_back();
            }
        }

        return result;
    }
};
复制代码

 方法二:

复制代码
class Solution {
public:
    vector<int> sortArrayByParityII(vector<int>& nums) {
        int n = nums.size();
        int evenIdx = 0; // 偶数索引
        int oddIdx = 1;  // 奇数索引

        while (evenIdx < n && oddIdx < n) {
            while (evenIdx < n && nums[evenIdx] % 2 == 0) {
                evenIdx += 2; // 找到下一个偶数位上为奇数的索引
            }
            while (oddIdx < n && nums[oddIdx] % 2 == 1) {
                oddIdx += 2; // 找到下一个奇数位上为偶数的索引
            }

            if (evenIdx < n && oddIdx < n) {
                swap(nums[evenIdx], nums[oddIdx]); // 交换不满足条件的元素
            }
        }

        return nums;
    }
};
复制代码

 

posted @   芜湖大厨师  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示