1. 题目描述

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

2.解题思路

(1)第一个思路:类似冒泡算法,前偶后奇数就交换,这里要注意考虑尽可能多的情况:

public class Reorderarray {public static void main(String [] args) {//int []  array = {0,1,3,5,6,7,8,9};int []  array = {2,4,6,1,3,5,7};for (int i=0; i<array.length-1; i++) {for (int j=0; j<array.length-1; j++) {if(array[j]%2==0 && array[j+1]%2==1) {int t=array[j];array[j]=array[j+1];array[j+1]=t;}//System.out.println(j+" "+Arrays.toString(array));}}System.out.println(Arrays.toString(array));}
}

运行结果:

[1, 3, 5, 7, 2, 4, 6]

(2)第二个思路:另外创建2个数组,用于把奇偶分别保存,最后再按先奇数后偶数的顺序填入到Array中。

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;public class Reorderarray {public static void main(String [] args) {int []  array = {0,1,3,5,6,7,8,9};//int []  array = {2,4,6,1,3,5,7};List<Integer> odd = new ArrayList<Integer>();List<Integer> even = new ArrayList<Integer>();int temp = 0;for (int j=0; j<array.length; j++) {temp=array[j];if(temp%2==1) {odd.add(temp);}else {even.add(temp);}int m = 0;for(int jj = 0;jj < odd.size();jj++){array[m] = odd.get(jj);m++;}for(int i=0; i < even.size(); i++){array[m] = even.get(i);m++;}}System.out.println(odd);System.out.println(even);System.out.println(Arrays.toString(array));}}

运行结果:

[1, 3, 5, 7, 9]
[0, 6, 8]
[1, 3, 5, 7, 9, 0, 6, 8]

java 调整数组顺序使奇数位于偶数前面相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  2. 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面

    在线题目链接:调整数组顺序使奇数位于偶数前面 文章目录 1 题目描述 2 题目分析 2.1 方法1 2.11 Java代码 2.12 C++代码 2.2 方法2 2.21 Java代码 2.22 C+ ...

  3. java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面

    LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...

  4. 面试 6:调整数组顺序使奇数位于偶数前面

    今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...

  5. 【剑指offer-Java版】14调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面:遍历交换 特殊输入: 1) 只有一个数字 2) 全奇数或者全偶数 3) 空指针 4) 正常输入 考虑到扩展性,C++里面使用了函数指针来实现,但是对于java,可以采用 ...

  6. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

  7. 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面

    题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...

  8. 【编程题目】调整数组顺序使奇数位于偶数前面

    54.调整数组顺序使奇数位于偶数前面(数组). 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分.要求时间复杂度为 O(n). 小题,秒灭. ...

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

    剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...

最新文章

  1. 解决国内GitHub加载慢的问题
  2. 基于Hi3559A ARM64位嵌入式平台的OpenCV2.4.9+ffmpeg2.0.7移植
  3. 使用Picasso实现图片圆角和图片圆形
  4. JZOJ 5977. 【清华2019冬令营模拟12.15】堆
  5. android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)
  6. 洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
  7. java 8 lambda_Java 8 Lambda演练
  8. 【温故而知新】HTTP 报文
  9. Hadoop系列之ToolRunner与GenericOptionsParser用法
  10. 洛谷oj---P1896 [SCOI2005] 互不侵犯
  11. 软件开发职业发展路径
  12. 2020-8-28平衡二叉树
  13. 教你用记账方法了解账户总收支结余
  14. mysql系列之十一许可更新及对象搜索
  15. MVVM设计模式的大体布局框架
  16. linux 系统管理 实战技巧
  17. 用它!用它!轻松实现线上线下门店一体化运营!
  18. You will surely observe a Tiffany jewelry
  19. C语言怎么系统化的高效学习?
  20. python批量保存网页内容到PDF

热门文章

  1. OpenCV视差图后过滤
  2. OpenCV重新映射Remapping
  3. OpenCV Java开发简介
  4. Qt Creator设置Nimble
  5. Qt Creator分析QML应用程序
  6. Qt Creator预览版
  7. 经典C语言程序100例之四二
  8. mysql的基本的查询语句_Mysql的基本查询语句
  9. 62.类文件结构(平台无关性、类文件结构)
  10. 14_面向对象API绘图、图中图 (A Plot inside of Another Plot)、设定绘图范围Setting the Plot Range、对数尺度Logarithmic Scale