leetcode.922. 按奇偶排序数组 II
给定一个非负整数数组 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] 也会被接受。
提示: 1、2 <= A.length <= 20000 2、A.length % 2 == 0 3、0 <= A[i] <= 1000
解题思路:题意很明确了,又提出数组个数都为偶数,而且一半为偶数、一半为奇数,这就很好做了,把原数组拆分奇偶两个数组,再组合在一起就得到答案,因为没有要求输出格式,只要满足一奇一偶的排序就可以了。
public int[] sortArrayByParityII(int[] A) { int len = A.length; int a[] = new int[len/2];int ana=0; int b[] = new int[len/2];int anb=0; for(int i=0;i<len;i++) { if(A[i]%2==0) { a[ana++]=A[i];//存偶数 }else { b[anb++]=A[i];//存奇数 } } for(int i=0;i<len;i+=2) { A[i]=a[--ana]; A[i+1]=b[--anb]; } return A; }
下一篇:
【题目】蓝桥模拟赛第一期,晨跑