描述

输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不变

数据范围:0≤n≤50000,数组中每个数的值 0≤val≤10000

要求:时间复杂度 O(n),空间复杂度 O(1)

示例
// 输入
[1,2,3,4]
// 输出
[1,3,2,4]

// 输入
[1,3,5,6,7]
// 输出
[1,3,5,7,6]

// 输入
[1,4,4,3]
// 输出
[1,3,4,4]
解题思路

双指针

  • 先遍历数组获取奇数个数 odd,也就是偶数在新数组起点位置
  • 双指针 left、right,奇数在 0 位置后添加,偶数在 odd 位置后添加
代码实现
/**
 * [JZ21-简单] 调整数组顺序使奇数位于偶数前面(二)
 *
 * @param array int 整型一维数组
 * @return int 整型一维数组
 */
func reOrderArrayTwo2(array []int) []int {
    n := len(array)
    if n <= 1 {
        return array
    }

    odd := 0
    for _, v := range array {
        if v%2 == 1 {
            odd++
        }
    }

    left, right := 0, odd
    arr := make([]int, n)
    for i := 0; i < n; i++ {
        if array[i]%2 == 1 {
            arr[left] = array[i]
            left++
        } else {
            arr[right] = array[i]
            right++
        }
    }
    return arr
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

7 条评论

  1. 鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099
    鍗庣撼鍏徃鍚堜綔寮€鎴锋墍闇€鏉愭枡锛熺數璇濆彿鐮?5587291507 寰俊STS5099

    微信电话同步?【——183-88909465—微电同号】?华纳公司客服联系方式?【6011643——183-88909465——-】、?华纳公司直属开户
    华纳公司注册会员流程?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    如何成为华纳公司会员?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳直属会员开户步骤?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳公司会员注册指南?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳总公司会员申请?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳公司会员注册所需材料?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳会员开户流程?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳公司注册会员步骤?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳会员申请流程?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】
    华纳公司会员注册指南?(▲18288362750?《?微信STS5099? 】【╃q 2704132802╃】

  2. gkldhfeznv
    gkldhfeznv

    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com

  3. klnstnbicw
    klnstnbicw

    忘年恋曲

  4. yvlnqybjzo
    yvlnqybjzo

    物种起源

  5. gupygydjxg
    gupygydjxg

    阴目侦信

  6. nyuuimaepx
    nyuuimaepx

    熊猫计划

  7. hgizniwame
    hgizniwame

    超級鯊魚大道港

添加新评论