调整数组顺序使奇数位于偶数前
解题思路
看到题目首先想到的是将排序的思想应用到这道题目上,但是这样不能保证奇数在偶数前面,并且相对位置不变;其次又想是不是可以都顺次遍历然后交换,可后来发现这样进行的次数多了会打乱偶数的相对位置;所以最后只好用最笨的方法,从前往后分别找到第一个偶数和第一个奇数,然后一个一个的挪动位置进行交换,这样可以满足题意,但是要注意遍历偶数的边界和while循环结束的条件
问题描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
代码实现
import java.util.Queue; public class Solution {public void reOrderArray(int [] array) {int start = 0;int end = 0;if(array.length==0){return ;}while(start<array.length){while(start<array.length&&(array[start]%2!=0)){start++;}end=start+1;while(end<array.length&&(array[end]%2==0)){end++;}if(end<array.length){int temp = array[end];for(int j=end; j>start; j--){array[j]=array[j-1];}array[start]=temp;}else{break;}}} }
转载于:https://www.cnblogs.com/wanglinyu/p/8516729.html
调整数组顺序使奇数位于偶数前相关推荐
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...
- 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面
题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 面试 6:调整数组顺序使奇数位于偶数前面
今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...
- 【编程题目】调整数组顺序使奇数位于偶数前面
54.调整数组顺序使奇数位于偶数前面(数组). 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分.要求时间复杂度为 O(n). 小题,秒灭. ...
- python调整数组顺序使奇数位于偶数前面
|调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输出 ...
- 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
- 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...
最新文章
- C语言结构体-大小,对齐,填充,使用及其他
- 独家解密:阿里是如何应对超大规模集群资源管理挑战的?
- 在控制台读取用户输入密码,你会么?
- 初步认识Volatile-从硬件层面了解可见性的本质
- 缓存-分布式锁-Redisson简介整合
- 用NPOI从DataBase到Excel '2
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
- 【jzoj】2018/2/2 NOIP普及组——D组模拟赛
- 一、ElasticSearch分词器概念
- python3最新版下载_python3.9下载-Python下载v3.9.0 官方最新版【x86|x64】-西西软件下载...
- 【优化算法】寄生-捕食算法(PPA)【含Matlab源码 1801期】
- CompoundButton
- HHL论文及代码理解(Generalizing A Person Retrieval Model Hetero- and Homogeneously ECCV 2018)...
- 我的科幻评论——《星船伞兵》:海因莱茵最经典又最不典型之作,平凡人类勇气与责任的赞歌
- 在OpenJweb平台中实现微信刷卡支付(被动扫码)
- 一只纯白小菜鸡是如何走上嵌入式学习这条道路的
- Cookie重名问题处理
- Home Assistant 开发指南
- 【话题】致敬伟大的科学家史蒂芬·霍金,他留下的预言能实现吗?
- 图片瀑布流加载和购物车
热门文章
- Vue源码学习(三)——数据双向绑定
- input的一些使用方法
- 怎样制作网吧服务器,网吧游戏服务器制作的过程是怎样的
- windows10资讯和兴趣怎么关闭?
- 如何在服务器上部署若依开源框架?(Linux版)
- html 自动滚动到底部,Javascript实现DIV滚动自动滚动到底部的代码
- 智能android电视更换播放器,GitHub - qfwc258/TvPlayer: android智能电视播放器,可以播放各电视台节目,播放基于ijkplayer的实现。...
- 我的世界服务器传送系统,我的世界多人服务器任何人都没权限了 不能回主城 不能传送 等等...
- java 内存管理 知乎_[知乎]Java 语言的 GC 为什么不实时释放内存?
- dell 重装linux系统_U盘装系统开机按哪个键