《剑指offer》牛客网java题解-调整数组顺序使奇数位于偶数前面
来源:互联网 发布:阿尔法营销软件 编辑:程序博客网 时间:2024/06/08 07:25
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
题目中要求了相对位置不变,如果没有这个要求的话,可以才有双指针,从头和尾分别扫描然后交换。
第一种解法是开辟了新的数组,等于用空间换时间。
import java.util.ArrayList;import java.util.List;public class Solution { public void reOrderArray(int [] array) { List<Integer> cur1 = new ArrayList<Integer>(); List<Integer> cur2 = new ArrayList<Integer>(); for(int tmp:array){ if ((tmp&1)==0){ cur1.add(tmp); } else cur2.add(tmp); } int i =0; while (i < array.length) { for (int tmp:cur2){ array[i]=tmp; i++; } for (int tmp:cur1){ array[i]=tmp; i++; } } }}
可以采用冒泡的方式
public class Solution { public void reOrderArray(int [] array) { for(int i=0;i<array.length-1;i++) for(int j=0;j<array.length-i-1;j++){ if(array[j]%2==0 && array[j+1]%2==1){ int temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } }}
阅读全文
0 0
- 《剑指offer》牛客网java题解-调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 剑指offer--调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指 offer:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面
- 剑指offer 调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- [剑指offer]调整数组顺序使奇数位于偶数前面
- 剑指offer:调整数组顺序使奇数位于偶数前面
- 【剑指offer】调整数组顺序使奇数位于偶数前面
- 剑指offer|调整数组顺序使奇数位于偶数前面
- 《剑指offer》调整数组顺序使奇数位于偶数前面
- 剑指Offer:调整数组顺序使奇数位于偶数前面
- 剑指offer - 调整数组顺序使奇数位于偶数前面
- 51node-1006-最长公共子序列Lcs
- 数据结构与算法笔记之--算法绪论
- 94. Binary Tree Inorder Traversal
- 开源个.NetCore写的
- hdu 1242 disney (map模拟)
- 《剑指offer》牛客网java题解-调整数组顺序使奇数位于偶数前面
- ros indigo 学习笔记--->
- 初识Vue.js
- 逻辑地址、线性地址、物理地址和虚拟地址理解
- 音视频编解码相关知识学习
- 【JAVA 提高班之三】异常处理
- 回溯法简介
- 一、高并发秒杀API简介与业务分析
- 图像分类模型AlexNet解读