面试题 14:调整数组顺序使奇数位于偶数前面
来源:互联网 发布:淘宝品牌004 编辑:程序博客网 时间:2024/06/11 16:58
一. 题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.
代码请到我的代码库中下载 Point2Offer
二. 代码
package ween_2;/** * 剑指offer: 调整数组顺序使奇数位于偶数前面 * 方法:两个指针 * 测试用例:功能测试(123456,135246,1,246135,13) * 特殊输入测试(数组为空) * @author dingding * Date:2017-6-21 16:19 * Declaration: All Rights Reserved! */public class No14 { public static void main(String[] args) { test1(); test2(); test3(); test4(); test5(); test6(); } //solution private static void oddAheadOfEven(int[] arr){ if (arr == null || arr.length<1) { return; } int pBegin = 0; int pEnd = arr.length-1; while (pBegin<pEnd){ //向后移动pBedin,直到找到偶数 while (pBegin<pEnd && (arr[pBegin]&1)!=0){ //(i&1)==0 代表i为偶数 pBegin++; } //向前移动pEnd,直到找到奇数 while (pBegin<pEnd && (arr[pEnd]&1)==0){ pEnd--; } if (pBegin<pEnd) { int tmp = arr[pBegin]; arr[pBegin] = arr[pEnd]; arr[pEnd] = tmp; } } } //判断偶数 boolean isOdd(int n){ return (n & 1) == 0; //true 为偶数 } /*=======================测试用例=============*/ private static void test1() { // TODO Auto-generated method stub int[] arr={1,2,3,4,5,6}; oddAheadOfEven(arr); for(int number:arr){ System.out.print(number+" "); } System.out.println(); System.out.println("========================"); } private static void test2() { int[] arr={1,3,5,2,4,6}; oddAheadOfEven(arr); for(int number:arr){ System.out.print(number+" "); } System.out.println(); System.out.println("========================"); } private static void test3() { int[] arr={2,4,6,1,3,5}; oddAheadOfEven(arr); for(int number:arr){ System.out.print(number+" "); } System.out.println(); System.out.println("========================"); } private static void test4() { int[] arr={2}; oddAheadOfEven(arr); for(int number:arr){ System.out.print(number+" "); } System.out.println(); System.out.println("========================"); } private static void test5() { int[] arr={1,3}; oddAheadOfEven(arr); for(int number:arr){ System.out.print(number+" "); } System.out.println(); System.out.println("========================"); } private static void test6() { int[] arr={}; oddAheadOfEven(arr); if (arr.length<1 || arr == null) { System.out.print("无效数组. "); return; } for(int number:arr){ System.out.print(number+" "); } }}
有不妥当之处,麻烦告知:D
阅读全文
0 0
- 试题14:调整数组顺序使奇数位于偶数前面
- [剑指offer][面试题14]调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14 调整数组顺序使奇数位于偶数前面
- 面试题14 调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14-调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14 调整数组顺序使奇数位于偶数前面
- 《剑指Offer》面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14—调整数组顺序使奇数位于偶数前面
- 《剑指Offer》学习笔记--面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题14:调整数组顺序使奇数位于偶数前面--Java实现
- 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
- 剑指offer面试题14-调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer-面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer之面试题14:调整数组顺序使奇数位于偶数前面
- 面试题14:调整数组顺序使奇数位于偶数前面
- Linux 服务器命令
- scala中:: , +:, :+, :::, +++的区别
- lintcode整数排序|冒泡排序算法(Java)
- 租房思维导图+注意事项
- Servlet的九大内置对象 和 四大对象域
- 面试题 14:调整数组顺序使奇数位于偶数前面
- MongoDB安装与测试
- BitmapFactory获取Bitmap图片以及解决OOM异常
- 守护进程及守护进程中两次fork问题
- redis服务端基本命令
- 论文阅读:《神经机器翻译和序列对序列模型:一个教程》中
- stm32 使用FSMC连接bank1的第三个存储区程序参考及说明
- 如何导出sql脚本文件?
- 傅里叶变换和正弦函数和欧拉公式