一道简单的模拟题,来做吧!SortingArraysbyParityII题目链接:https://leetcode-cn.com/problems/sort-array-by-parity-ii/给定一个非负整数的数组A,其中一半的整数是奇数一半的整数是偶数。对数组进行排序,当A[i]为奇数时,i为奇数,当A[i]为偶数时,i为偶数。您可以返回任何满足上述条件的数组作为答案。例子:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5]也会被接受。思路本题的直接思路可能是两层for循环加上used数组来表示used元素。这个的时间复杂度是O(n^2)。方法一其实这道题可以用很简单的方法,时间复杂度为O(n),C++代码如下:classSolution{public:vectorsortArrayByParityII(vector&A){vectoreven(A.size()/2);//初始化决定数组大小,节省开销vectorodd(A.size()/2);vectorresult(A.size());intevenIndex=0;intoddIndex=0;intresultIndex=0;//将A数组分为偶数数组和奇数数组for(inti=0;isortArrayByParityII(vector&A){vectorresult(A.size());intevenIndex=0;//偶数表intoddIndex=1;//奇表for(inti=0;isortArrayByParityII(vector&A){intoddIndex=1;for(inti=0;iList[int]:result=[0]*len(nums)evenIndex=0oddIndex=1foriinrange(len(nums)):ifnums[i]%2:#奇数结果[oddIndex]=nums[i]oddIndex+=2else:#偶数结果[evenIndex]=数[i]evenIndex+=2returnresult#method3classSolution:defsortArrayByParityII(self,nums:List[int])->List[int]:oddIndex=1foriinrange(0,len(nums),2):#步长为2ifnums[i]%2:#偶数遇到奇数whilenums[oddIndex]%2:#奇数求偶数oddIndex+=2nums[i],nums[oddIndex]=nums[oddIndex],nums[i]returnnumsGo//方法一funcsortArrayByParityII(nums[]int)[]int{//将奇偶数分别存入nums中,odd:=[]int{},[]int{}fori:=0;i