一、题目内容
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。
示例1:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
二、题目分析
这道题,按照插入排序的思想,很容易可以想到题解。我们只需要遍历数组,当我们遇到偶数时,其插入到数组前最近的一个为奇数的位置,与该位置的奇数元素交换。为了达成该目的,我们引入一个指针 j,来维持这样一个奇数的位置。
假设我们的数组为:[3,1,2,4]
三、代码实现
func sortArrayByParity(A []int) []int {
j := 0
for i := range A {
if A[i] % 2 == 0 {
A[j], A[i] = A[i], A[j]
j++
}
}
return A
}