LeetCode922. Sort Array By Parity II

文章目录

一、题目

Given an array of integers nums, half of the integers in nums are odd, and the other half are even.

Sort the array so that whenever nums[i] is odd, i is odd, and whenever nums[i] is even, i is even.

Return any answer array that satisfies this condition.

Example 1:

Input: nums = [4,2,5,7]

Output: [4,5,2,7]

Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.

Example 2:

Input: nums = [2,3]

Output: [2,3]

Constraints:

2 <= nums.length <= 2 * 104

nums.length is even.

Half of the integers in nums are even.

0 <= nums[i] <= 1000

Follow Up: Could you solve it in-place?

二、题解

cpp 复制代码
class Solution {
public:
    vector<int> sortArrayByParityII(vector<int>& nums) {
        int n = nums.size();
        int oddIndex = 1;
        for(int i = 0;i < n;i+=2){
            //存在偶数位上的奇数
            if(nums[i] % 2 == 1){
                //查找奇数位上的偶数
                while(nums[oddIndex] % 2 != 0) oddIndex += 2;
                swap(nums[i],nums[oddIndex]);
            }
        }
        return nums;
    }
};
相关推荐
小鱼小鱼.oO3 分钟前
C++ 算法基础知识
c++·算法·哈希算法
昨天那个谁谁30 分钟前
ROS2运行时报无法加载create_key等符号错误
c++·python·ros2
不会编程的小寒31 分钟前
C and C++ 八股文
c语言·c++·青少年编程
yong999039 分钟前
LSD直线提取算法 MATLAB
开发语言·算法·matlab
MobotStone1 小时前
一文看懂AI智能体架构:工程师依赖的8种LLM,到底怎么分工?
后端·算法·llm
lengxuenong1 小时前
潍坊一中第四届编程挑战赛(初赛)题解
算法
wkd_0071 小时前
【C++ | STL】std::vector 复制的几个方法总结
c++·stl·std vector·复制vector·vector复制
松涛和鸣1 小时前
25、数据结构:树与二叉树的概念、特性及递归实现
linux·开发语言·网络·数据结构·算法
Han.miracle1 小时前
数据结构--初始数据结构
算法·集合·大o表示法
List<String> error_P1 小时前
C语言联合体:内存共享的妙用
算法·联合体