剑指Offer 21. 调整数组顺序使奇数位于偶数前面

发布时间 2023-08-26 19:35:09作者: 小星code

题目链接: 剑指Offer 21. 调整数组顺序使奇数位于偶数前面

题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
解法思路:
一、快慢指针法:

  • 快指针遍历整个数组,当遇到奇数时,将当前数与慢指针所指的数交换,
  • 最终快指针遍历完后。整个数组的奇数一定是都换在了数组的前半部分。

代码:
func exchange(nums []int) []int {
idx := 0
for i := range nums {
if nums[i]%2 == 1 {
nums[i], nums[idx] = nums[idx], nums[i]
idx++
}
}
return nums

}