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;
    }
};
相关推荐
jyl_sh几秒前
通过ShiftMediaProject生成ffmpeg的DLL和Lib的简要说明
c++·chrome·ffmpeg·webkit·视频接口
宇宙核1 小时前
机器学习算法(一): 基于逻辑回归的分类预测
算法·机器学习·逻辑回归
IT猿手2 小时前
无人机(Unmanned Aerial Vehicle, UAV)路径规划介绍
算法·matlab·无人机·智能优化算法·多目标算法
smileNicky6 小时前
Redis系列之底层数据结构整数集IntSet
数据结构·数据库·redis
玉面小君8 小时前
C# 数据拟合教程:使用 Math.NET Numerics 的简单实现
算法·c#·c·数据拟合
被AI抢饭碗的人8 小时前
算法题(38):最小栈
数据结构
_extraordinary_9 小时前
list的模拟实现详解
数据结构·windows·list
超龄编码人9 小时前
Audiotrack播放PCM数据
c++·ffmpeg
ydm_ymz9 小时前
句子读单词
c语言·数据结构·算法·排序算法
KeyPan10 小时前
【机器学习:三十三(一)、支持向量机】
人工智能·神经网络·算法·机器学习·支持向量机·数据挖掘·迁移学习