Open xiwenAndlejian opened 5 years ago
905. 按奇偶排序数组
输入:数组A为一个非负整数数组。
A
返回:返回数组元素和A一致,且偶数元素排列在奇数元素之前。
使用双指针,把数组前半部分(指偶数部分,而非元素个数的一半)中的奇数元素,与后半部分偶数元素对掉即可。
public int[] sortArrayByParity(int[] A) { int l = 0; int r = A.length - 1; while (l < r) { while (l < r && isOdd(A[l])) { l++; } while (r > l && !isOdd(A[r])) { r--; } if (r <= l) { break; } A[l] ^= A[r]; A[r] ^= A[l]; A[l] ^= A[r]; } return A; } public static boolean isOdd(int num) { return (num & 1) == 0; }
905. 按奇偶排序数组
思路
输入:数组
A
为一个非负整数数组。返回:返回数组元素和
A
一致,且偶数元素排列在奇数元素之前。解题
使用双指针,把数组前半部分(指偶数部分,而非元素个数的一半)中的奇数元素,与后半部分偶数元素对掉即可。