摘要:对数组进行排序,以便当为奇数时,也是奇数当为偶数时,也是偶数。示例输入输出解释,,也会被接受。因此使用双指针,为偶数指针,为奇数指针。需要注意的是的边界是数组长度,而的边界是数组长度。
题目地址:
https://leetcode-cn.com/probl...
题目描述:
给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。
对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。
你可以返回任何满足上述条件的数组作为答案。
示例:
输入:[4,2,5,7]
输出:[4,5,2,7]
解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。
解答:
这一题虽然是排序,但是实际上是把奇数放在奇数下标的地方,偶数放在偶数下标的地方即可,而不需要
使得数组有序的关系。因此使用双指针,i为偶数指针,j为奇数指针。只要i的位置为偶数,i指针就后移
两步,只要j的位置为奇数,j指针就后移两布,如果它们任意到达边界就退出循环,否则交换两个指针对
应地址的值。
需要注意的是i的边界是数组长度-2,而j的边界是数组长度-1。
java ac代码:
class Solution { public int[] sortArrayByParityII(int[] A) { int i = 0,j = 1; while(true) { while(i <= A.length-2&&(A[i]&1)==0)i+=2; if(i > A.length-2)break; while(j <= A.length-1&&(A[j]&1)==1)j+=2; if(j > A.length-1)break; int temp = A[i]; A[i] = A[j]; A[j] = temp; } return A; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72973.html
摘要:题目链接题目分析给定一个整数数组,使数组中偶数位的值为偶数,奇数位的值为奇数。例如,,是偶数,所以要为偶数。,是奇数,所以要为奇数。思路用拆分数组中的偶数和奇数,再轮流塞进新数组中。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 922. Sort Array By Parity II 题目链接 922. Sort Array By Parity II 题目分析 给定一个整数数组A,...
摘要:图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。因此使用一个数组代表每个节点的入度,若入度为就是叶子节点。 题目地址:https://leetcode-cn.com/probl...题目描述: 对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小...
摘要:关于递归这里提一两点递归基本有这几步递归的模板,终止条件,递归调用,逻辑处理。 ?作者简介:大家好,我是车神哥,府学路18号的车神? ?个人主页:应无所住而生...
摘要:对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。解答这是一道区间覆盖问题,不太好说清楚,利用模板即可。 题目地址:https://leetcode-cn.com/probl...题目描述:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方...
阅读 3107·2021-11-19 09:40
阅读 2417·2021-10-14 09:42
阅读 1661·2021-09-22 15:34
阅读 1422·2019-08-30 15:55
阅读 743·2019-08-29 12:59
阅读 390·2019-08-28 18:28
阅读 1786·2019-08-26 13:42
阅读 1503·2019-08-26 13:29