题目描述
给定一个整数数组 nums,将数组中的所有偶数元素移动到数组的前面,后跟所有奇数元素。
解决思路
使用双指针技巧,一个指针从数组开头向后移动,另一个指针从数组末尾向前移动。当左指针指向奇数、右指针指向偶数时,交换两个元素的位置,直到两个指针相遇为止。
算法代码
func sortArrayByParity(nums []int) []int {
left, right := 0, len(nums)-1
for left < right {
if nums[left]%2 != 0 && nums[right]%2 == 0 {
nums[left], nums[right] = nums[right], nums[left]
}
if nums[left]%2 == 0 {
left++
}
if nums[right]%2 != 0 {
right--
}
}
return nums
}