zoukankan      html  css  js  c++  java
  • 剑指Offer——调整数组顺序使奇数位于偶数前面

    1、题目描述

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

    2、代码实现

     1 package com.baozi.offer;
     2 
     3 import java.util.Arrays;
     4 
     5 /**
     6  *  输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,
     7  * 所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
     8  *
     9  * @author BaoZi
    10  * @create 2019-07-11-15:26
    11  */
    12 public class Offer10 {
    13     public static void main(String[] args) {
    14         int[] array = new int[]{1, 2, 4, 6, 3, 7, 9};
    15         Offer10 offer10 = new Offer10();
    16         offer10.reOrderArray(array);
    17         System.out.println(Arrays.toString(array));
    18     }
    19 
    20     public void reOrderArray(int[] array) {
    21         //定义两个ArrayList变量,分别存放数组中的基数和偶数
    22         java.util.ArrayList<Integer> list1 = new java.util.ArrayList<>();
    23         java.util.ArrayList<Integer> list2 = new java.util.ArrayList<>();
    24         for (int i = 0; i < array.length; i++) {
    25             //任何一个数和1进行与操作之后,如果是偶数最后的结果就是全零,如果是奇数最后的结果就是为1
    26             if ((array[i] & 1) != 1) {
    27                 list1.add(array[i]);
    28             } else {
    29                 list2.add(array[i]);
    30             }
    31         }
    32         int index = 0;
    33         //根据题目的要求,数组中的奇数全部位于偶数的前面,所以先要把list2中的元素存入到原数组中
    34         for (int i = 0; i < list2.size(); i++) {
    35             array[index] = list2.get(i);
    36             index++;
    37         }
    38         //然后再把偶数全部存入到原数组中
    39         for (int i = 0; i < list1.size(); i++) {
    40             array[index] = list1.get(i);
    41             index++;
    42         }
    43     }
    44 }
  • 相关阅读:
    19. 删除链表的倒数第 N 个结点
    相交链表
    环形链表2
    环形链表
    K8s 网络通讯
    Hutool-二维码生成
    Hutool-加解密
    Hutool-解析JSON
    Hutool-读取配置文件中的配置
    Hutool-操作图片
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/11170349.html
Copyright © 2011-2022 走看看