更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。
组队打卡,更多解法等你一起来参与哦!
LeetCode 905. 按奇偶排序数组,难度简单。
双指针
解题思路:
- 定义两个指针
i = 0
,j = nums.length - 1
; - 当
i < j
时,判断nums[i]
是否是奇数,如果是奇数则与nums[j]
交换位置,反之i
继续向后遍历。
class Solution {
public void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
public int[] sortArrayByParity(int[] nums) {
int i = 0, j = nums.length - 1;
while (i < j) {
if (nums[i] % 2 == 0) {
i++;
} else {
swap(nums, i, j);
j--;
}
}
return nums;
}
}