题目描述
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3]
也会被接受。
方法一:整体赋值
思路
- 变脸数组,找出所有的奇数和偶数,分别存放至odd和even数组
- 先放偶数,在偶数后面放奇数
代码
class Solution:
def sortArrayByParity(self, A: List[int]) -> List[int]:
odd,even=[],[]
for item in A:
if item%2==1:
odd.append(item)
else:
even.append(item)
return even+odd
方法二:新数组赋值
思路
- 定义指针i和j,分别指向开始和结束,并初始化新数组B
- 遍历数组A,若为偶数,指针i位置为偶数,并+1,否则,指针j位置为奇数,并+1
代码
class Solution:
def sortArrayByParity(self, A: List[int]) -> List[int]:
i,j=0,len(A)-1
B=[0]*len(A)
for item in A:
if item%2==0:
B[i]=item
i+=1
else:
B[j]=item
j-=1
return B