剑指offer13
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer13相关的知识,希望对你有一定的参考价值。
/** * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, * 使得所有的奇数位于数组的前半部分,所有的偶数位于位于数 * 组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位 * 置不变。 * @author user * */ public class ch13 { /* * 遍历数组,遇到前偶后奇就交换,类似冒泡,感觉很笨重 */ public void reOrderArray(int[] array) { int tmp; for (int i = 0; i < array.length; i++) { for (int j = array.length - 1; j > 0; j--) { if(array[j] % 2 != 0 && array[j - 1] % 2 == 0) { tmp = array[j]; array[j] = array[j - 1]; array[j - 1] = tmp; } } } }/* * 首先找到第一个奇数,将它放到数组首位,该数前面的数, * 统统向后移动一位 */ public void reOrderArray2(int[] array) { int m = 0;//标记奇数的个数 for(int i=0;i<array.length;i++){ if(array[i]%2==1){//找到的奇数 m++; if(i==0) continue; int tmp = array[i];//记录奇数 int ti = i; for(;ti>=m;ti--){ array[ti] = array[ti-1];//奇数之前的所有元素往后移动一位 } array[m-1] = tmp; } } } }
以上是关于剑指offer13的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 13. 机器人的运动范围
剑指 Offer(C++版本)系列:剑指 Offer 13 机器人的运动范围