题目描述:
给定一个非负整数数组,将数组中的奇数放在偶数后面。
此题有两种解法:
法一:
思路:将偶数放在一个数组,奇数放在一个数组,然后将两数组合并。
python实现代码:
def sortArrayByParity(A):
j=0 #列表索引值,从0开始
a=[] #存放偶数的数组
b=[] #存放奇数的数组
while j<=len(A)-1:
if A[j]%2==0:#判断偶数条件
a.append(A[j])
elif A[j]%2==1:#判断奇数条件
b.append(A[j])
j+=1
return a+b #将偶数放在前面,奇数放在后面,合并两数组
leetcode执行结果:
法二:
思路,将奇数删除并添加到列表后。
python实现代码:
def sortArrayByParity(self, A: List[int]) -> List[int]:
i=0 #控制列表中第几个数字
j=0 #控制读取列表中第几个数字
while j<len(A)-1:
ai=A[i]
if ai%2==0:
i+=1
elif ai%2==1:
A.remove(ai) #如果是奇数,将奇数删除并添加到列表后,如果是偶数,不管
A.append(ai)
j+=1
return A
LeetCode执行结果: