奇数位于偶数前面且顺序不变
来源:互联网 发布:酒店数据接口 编辑:程序博客网 时间:2024/06/02 02:26
输入一个整数数组,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
/** * 方法1:放到临时的数组再整合,空间消耗 */class Solution1 { public void reOrderArray(int [] array) { ArrayList<Integer> oddList = new ArrayList<Integer>(); ArrayList<Integer> evenList = new ArrayList<Integer>(); //存储 for(int i : array){ if(i%2==1) oddList.add(i); else evenList.add(i); } //重新排序 Iterator it = oddList.iterator(); int i=0; while(it.hasNext()){ array[i++] = (Integer)it.next(); } it = evenList.iterator(); while(it.hasNext()){ array[i++] = (Integer)it.next(); } }}/** * 方法2:每找到一个奇数,该段整体后挪,将奇数放到前面 */class Solution2 { public void reOrderArray(int [] array) { int i = 0, j = 0, n = array.length; //i往后找奇数的位置,j是i找到的奇数放的位置 while(i < n && j < n){ //找到下一个奇数 while(i < n && array[i] % 2 == 0 ) i++; if( i == n ) return ; //挪动中间的偶数 int oddTemp = array[i], index ; for(index = i;index > j; index-- ) array[index] = array[index - 1]; array[j] = oddTemp; j++; i++; } }}
0 0
- 奇数位于偶数前面且顺序不变
- 调整数组顺序使得奇数位于偶数前面,且奇数与奇数,偶数与偶数之间的位置相对不变
- 调整数组顺序使奇数位于偶数前面,偶数和偶数之间的相对位置不变
- 调整数组顺序使奇数位于偶数前面,偶数和偶数之间的相对位置不变
- 调整数组顺序使奇数位于偶数前面【相对为止不变】
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面--总结
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面
- HDU 5805 NanoApe Loves Sequence(思维)
- Java 基础 之 整型比较
- 数学符号
- SpringMVC返回json数据的三种方式
- poj2774(后缀数组||字符串hash)
- 奇数位于偶数前面且顺序不变
- 二叉树的创建
- C语言指针 int *p[10] int (*p)[10] int *p(int) int (*p)(int) 区别与举例
- TestNG中的参数Parameters概念
- Java批量更改文件名
- hdu3275 线段树区间更新(略坑
- 并查集刷题
- sscanf与sprintf函数的使用实例(C / C++)
- shell基础