剑指offer 14:调整数组顺序使奇数位于偶数前边
题目描述
解题思路
题目中要求奇数和奇数,偶数和偶数之间的相对位置不变,就不能使用类似于快速排序的头尾双指针向中间靠拢的方式来计算。必须两个指针全部从头部开始,锁定第一个扫描到的奇数和偶数,将偶数后移,奇数插入。具体步骤如下:
1. 判断数组大小是否为0,为0直接返回;
2.初始化指针i=0,j=i+1,及临时变量tmp;
3.只要j满足j<size,就循环执行4~8操作;
4. 从i开始从左到右寻找第一个偶数位置赋给i;
5. j=i+1,从左到右寻找第一个奇数位置赋给j;
6.如果j大于数组大小,则数组已完成要求,跳出循环;
7.将i~j-1 位置的偶数后移,在i位置插入原j位置的值;
8.i指向下一元素(i++),返回步骤4;
C++代码实现:
class Solution {
public:
void reOrderArray(vector<int> &array) {
int size=array.size();
if(size==){
return;
}
int i=,j=i+, tmp;
while(i<size && j<size){
while(array[i]%!=){ //i确定偶数位置
i++;
}
j=i+;
while(array[j]%!=){ //j确定奇数位置
j++;
}
if(j>=size){ //j超过数组长度,则结束
return;
}
tmp=array[j];
for (int k=j;k>i;--k){
array[k]=array[k-];
}
array[i]=tmp;
i++;
}
}
};
剑指offer 14:调整数组顺序使奇数位于偶数前边的更多相关文章
- 剑指offer 14 调整数组顺序使奇数位于偶数前面
牛客网上的题目还有一个额外的要求,就是不改变数组原始的前后数据,这种可以用队列来存储,或者把前后比较变为相邻的元素比较. 这个题目,主要要考察扩展性,用func函数就实现了扩展性.只需要改func函数 ...
- 剑指offer:调整数组顺序使奇数位于偶数前面
题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 分析 事实上,这个题比较简单,很多种方式都可以实现,但是其时间复杂度或空间复 ...
- 剑指Offer:调整数组顺序使奇数位于偶数前面【21】
剑指Offer:调整数组顺序使奇数位于偶数前面[21] 题目描述 输入一个整形数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 解题分析 使用插 ...
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Offer 21 这题的解法其实是考察快慢指针和头尾指针. package com.walegarrett.offer; /** * @Aut ...
- 【Java】 剑指offer(21) 调整数组顺序使奇数位于偶数前面
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇 ...
- 【剑指Offer】调整数组顺序使奇数位于偶数前面 解题报告(Python)
[牛客网]调整数组顺序使奇数位于偶数前面 解题报告 标签(空格分隔): 牛客网 题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc4 ...
- 剑指offer(07)-调整数组顺序使奇数位于偶数前面【转】
来源:http://www.acmerblog.com/offer-6-2429/ 题目来自剑指offer系列 九度 1516 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得 ...
- Go语言实现:【剑指offer】调整数组顺序使奇数位于偶数前面
该题目来源于牛客网<剑指offer>专题. 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和 ...
- 剑指OFFER之调整数组顺序使奇数位于偶数前面找(九度OJ1516)
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 输入: 每个输 ...
- 剑指Offer 13. 调整数组顺序使奇数位于偶数前面 (数组)
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 题目地址 https ...
随机推荐
- c# 异常精准定位
在日常项目开发中,异常抛出和捕获是再平常不过的事情.通过try-catch我们可以方便的捕获异常,同时通过查看异常堆栈我们能发现抛出异常代码的位置. 例如下面这段代码: using System; u ...
- (转)isolation forest进行异常点检测
原文链接:https://www.cnblogs.com/gczr/p/9156971.html 一.简介 孤立森林(Isolation Forest)是另外一种高效的异常检测算法,它和随机森林类似, ...
- SSM框架之SpringMVC(1)入门程序
SpringMVC(1) 1.三层架构和MVC 1.1. 三层架构 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B ...
- 松软科技web课堂:SQLServer之UCASE() 函数
UCASE() 函数 UCASE 函数把字段的值转换为大写. SQL UCASE() 语法 SELECT UCASE(column_name) FROM table_name SQL UCASE() ...
- Android 上下文菜单 PopupMenu
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...
- 安装上传下载插件,jdk及redis
安装rz sz (1)编译安装root 账号登陆后,依次执行以下命令:cd /tmpwget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gzt ...
- 2-3 远程管理命令-SSH工作方式简介
03.远程登录和复制文件 序号 命令 对应英文 作用 01 ssh 用户名@ip secure shell 关机/重启 02 scp 用户名@ip:用户名或路径 用户名@ip:文件名或路径 secur ...
- Fiddler 过滤掉无用域名
- 在 Fiters 一栏勾选Show only Internet Hosts 及Show only the following Hosts- 然后在下面输入需要保留的域名
- 开放平台API接口安全策略汇总
在设计开放平台接口过程中,往往会涉及接口传输安全性相关的问题,本文对接口加密及签名的相关知识做了一个总结,在方便自己查阅的同时也分享给大家做一些参考. 接口安全性问题思考 接口安全性问题主要来源于几方 ...
- JS模仿腾讯图片新闻
仿照腾讯图片新闻的幻灯,功能并不完全一样.最开始打算做这个的时候,突然觉得好像做不来.想想如果一步一步,一个功能一个功能的做应该能搞定. 我做这个例子的思路是这样的: 先把需要的html和css代码写 ...