Poison

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
public int[] exchange(int[] nums) {
int i = 0, j = nums.length - 1;
while (i < j) {
// skip odd numbers to find an even number
while (i < j && (nums[i] & 1) == 1) {
i++;
}

// skip even numbers to find an odd number
while (i < j && (nums[j] & 1) == 0) {
j--;
}

swap(nums, i, j);
}

return nums;
}

private void swap(int[] nums, int i, int j) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
Reference

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面