调整数组顺序使奇数位于偶数前面

youzhihua · · 559 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路

  1. 先将数组遍历一次,然后记录奇数的个数(因为奇数在前,偶数在后)
    2.将数组拷贝出一份副本,然后遍历拷贝的副本
    3.若是奇数原数组从第一个位置开始覆盖数据,否则从奇数个数的位置开始覆盖数据

Java代码实现

  public void reOrderArray(int [] array) {
        int oddCount = 0;
        int evenCount = 0;

        int[] array2 = array.clone();

        for (int i = 0; i < array.length; i++) {
            if(array[i]%2 == 1){
                oddCount++;
            }
        }

        for (int i = 0; i < array2.length; i++) {
            if(array2[i]%2 == 1){
                array[evenCount++] = array2[i];
            }else{
                array[oddCount++] = array2[i];
            }
        }
    }

Golang代码实现

func reOrderArray(nums []int){
    nums2 := make([]int,len(nums))
    copy(nums2,nums)
    oddCount := 0
    evenCount := 0
    for i:=0; i< len(nums); i++ {
        if nums[i]%2 == 1{
            oddCount++;
        }
    }

    for i:=0; i<len(nums2);i++{
        if nums2[i]%2 == 0{
            nums[oddCount] = nums2[i]
            oddCount++
        }else {
            nums[evenCount] = nums2[i]
            evenCount++
        }
    }
}

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:youzhihua

查看原文:调整数组顺序使奇数位于偶数前面

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

559 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传