922-按奇偶校验排序数组II
给定一组A 非负整数,A中的一半整数是奇数,而整数的一半是偶数。 对数组进行排序,以便每当A[i]奇数时,i都是奇数; 无论何时A[i]均匀,i均匀。 您可以返回满足此条件的任何答案数组。
例1: 输入:[4,2,5,7] 输出:[4,5,2,7] 说明: [4,7,2,5],[2,5,4,7],[2,7,4] ,5]也将被接受。
注意:
2 <= A.length <= 20000
A.length % 2 == 0
0 <= A[i] <= 1000
解法一:使用三次while循环,第二次跟第三次分别是为了查找出数组中索引跟索引位置数组元素奇偶不同时索引的值。然后将两个索引所谓数组元素互换。
public int[] sortArrayByParityII(int[] A) {
int i=0;
int j=1;
int m=A.length;
while(i<m&&j<m)
{
while (i<m&&A[i]%2==0)
{
i+=2;
}
while (j<m&&A[j]%2==1){
j+=2;
}
if (i<m&&j<m)
{
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
return A;
} 解法2:只使用一个while循环,此循环用于得出索引跟索引元素不同时的索引值。然后通过if判断当索引小于数组长度且偶索引元素为奇,奇索引元素为偶时交换元素。
public int[] sortArrayByParityII(int[] A) {
int i=0;
int j=1;
int m=A.length;
while(i<m&&j<m)
{
if (i<m&&A[i]%2==0)
{
i+=2;
}
if (j<m&&A[j]%2==1){
j+=2;
}
if (i<m&&j<m&&A[i]%2==1&&A[j]%2==0)
{
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
}
return A;
}
922-按奇偶校验排序数组II的更多相关文章
- 每日一题20201112(922. 按奇偶排序数组 II)
题目链接: 922. 按奇偶排序数组 II 思路 很简单,搞懂问题的核心就行,假设现在有奇数在偶数位上,偶数在奇数位上. 那么我们要做的就是,找到分别在对方位置上的数字,然后交换他们就行. class ...
- 力扣(LeetCode)922. 按奇偶排序数组 II
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组 ...
- 922. 按奇偶排序数组 II
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组 ...
- 【力扣】922. 按奇偶排序数组 II
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组 ...
- lintcode 中等题:搜索旋转排序数组II
题目 搜索旋转排序数组 II 跟进“搜索旋转排序数组”,假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中. 样例 给出[3, ...
- lintcode:合并排序数组 II
题目: 合并排序数组 II 合并两个排序的整数数组A和B变成一个新的数组. 样例 给出A = [1, 2, 3, empty, empty] B = [4,5] 合并之后A将变成[1,2,3,4,5] ...
- lintcode-64-合并排序数组 II
64-合并排序数组 II 合并两个排序的整数数组A和B变成一个新的数组. 注意事项 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素. 样例 给出 A = [1, 2, 3, ...
- lintcode-63-搜索旋转排序数组 II
63-搜索旋转排序数组 II 跟进"搜索旋转排序数组",假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中 ...
- Java实现 LeetCode 81 搜索旋转排序数组 II(二)
81. 搜索旋转排序数组 II 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判 ...
随机推荐
- RabbitMQ之消息持久化(转)
原文地址 https://blog.csdn.net/u013256816/article/details/60875666/ 消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证 ...
- C博客第03次作业---函数
1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 首先,对于学习了函数的我来说是很开心的,因为学了函数之后可以解决很多以前不懂的问题,可以说函数是C语言中 ...
- 看linux正在运行的服务用哪个命令?
https://zhidao.baidu.com/question/117779006.html 查看服务进程:ps aux查看服务cpu利用:top查看服务对应端口:netstat -nlp pst ...
- StormUI详解
StormUI由Cluster Summary,topology summary,supervisor summary,Nimbus Configuration四部分组成,如下图所示: Cluster ...
- python学习笔记09-python编码与解码
二进制编码: --->ASCII:只能存英文和拉丁字符 一个字符占一个字节:8位 ------>gb2312:只能存6700多个中文: 1980年发表 ----------->gbk ...
- centos安装python与jdk
安装python #压缩包安装 [root@china ~]# yum -y install zlib* Loaded plugins: fastestmirror, refresh-packagek ...
- MyEclipse:详细使用教程
http://www.56.com/u18/v_MTQwNzY1MTU5.html?fromvsogou=1
- 二、源代码=>程序集及程序集概念介绍
文本脉络图如下: 一.源代码-面向CLR的编译器-托管模块-(元数据&IL代码)中介绍了编译器将源文件编译成托管模块(中间语言和元数据),本文主要介绍如何将托管模块合并成程序集. 1.程序集的 ...
- Linux 线程占用CPU过高定位分析
今天朋友问我一个Linux程序CPU占用涨停了,该如何分析, CPU占用过高,模拟CPU占用过高的情况 先上一段代码: #include <iostream> #include <t ...
- java c :foreach 标签怎么获取自增分页序号
问题描述: 如果每页10条,下一页就从11递增,依次类推:用varStatus,下一页又从1开始了 解决方案: <c:forEach var="pag" begin=&quo ...