java 调整数组顺序使奇数位于偶数前面
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 调整数组顺序使奇数位于偶数前面相关推荐
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面
在线题目链接:调整数组顺序使奇数位于偶数前面 文章目录 1 题目描述 2 题目分析 2.1 方法1 2.11 Java代码 2.12 C++代码 2.2 方法2 2.21 Java代码 2.22 C+ ...
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...
- 面试 6:调整数组顺序使奇数位于偶数前面
今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...
- 【剑指offer-Java版】14调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面:遍历交换 特殊输入: 1) 只有一个数字 2) 全奇数或者全偶数 3) 空指针 4) 正常输入 考虑到扩展性,C++里面使用了函数指针来实现,但是对于java,可以采用 ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
- 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面
题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 【编程题目】调整数组顺序使奇数位于偶数前面
54.调整数组顺序使奇数位于偶数前面(数组). 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分.要求时间复杂度为 O(n). 小题,秒灭. ...
- LeetCode-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...
最新文章
- 解决国内GitHub加载慢的问题
- 基于Hi3559A ARM64位嵌入式平台的OpenCV2.4.9+ffmpeg2.0.7移植
- 使用Picasso实现图片圆角和图片圆形
- JZOJ 5977. 【清华2019冬令营模拟12.15】堆
- android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)
- 洛谷 - P3389 【模板】高斯消元法(高斯消元解方程)
- java 8 lambda_Java 8 Lambda演练
- 【温故而知新】HTTP 报文
- Hadoop系列之ToolRunner与GenericOptionsParser用法
- 洛谷oj---P1896 [SCOI2005] 互不侵犯
- 软件开发职业发展路径
- 2020-8-28平衡二叉树
- 教你用记账方法了解账户总收支结余
- mysql系列之十一许可更新及对象搜索
- MVVM设计模式的大体布局框架
- linux 系统管理 实战技巧
- 用它!用它!轻松实现线上线下门店一体化运营!
- You will surely observe a Tiffany jewelry
- C语言怎么系统化的高效学习?
- python批量保存网页内容到PDF
热门文章
- OpenCV视差图后过滤
- OpenCV重新映射Remapping
- OpenCV Java开发简介
- Qt Creator设置Nimble
- Qt Creator分析QML应用程序
- Qt Creator预览版
- 经典C语言程序100例之四二
- mysql的基本的查询语句_Mysql的基本查询语句
- 62.类文件结构(平台无关性、类文件结构)
- 14_面向对象API绘图、图中图 (A Plot inside of Another Plot)、设定绘图范围Setting the Plot Range、对数尺度Logarithmic Scale