🌗 922. 按奇偶排序数组 II
2022年6月20日
- algorithm
🌗 922. 按奇偶排序数组 II
难度: 🌗
问题描述
解法
class Solution {
public int[] sortArrayByParityII(int[] nums) {
// 思路:
// 双指针法 - 遇到不符合条件的原地交换
int len = nums.length;
int left = 1;
int right = 0;
while(left < len && right < len) {
// 从左跳跃找奇数下标不为奇数的下标
while(left < len && (nums[left] & 1) == 1) {
left += 2;
}
while(right < len && (nums[right] & 1) == 0) {
right += 2;
}
if(left < len) {
swap(nums, left, right);
}
}
return nums;
}
private void swap(int[] nums, int left, int right) {
int tmp = nums[left];
nums[left] = nums[right];
nums[right] = tmp;
}
}