# 922. Sort Array By Parity II

• Time:
• Space:
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Solution { public: vector sortArrayByParityII(vector& nums) { const int n = nums.size(); for (int i = 0, j = 1; i < n; i += 2, j += 2) { while (i < n && nums[i] % 2 == 0) i += 2; while (j < n && nums[j] % 2 == 1) j += 2; if (i < n) swap(nums[i], nums[j]); } return nums; } }; 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class Solution { public int[] sortArrayByParityII(int[] nums) { final int n = nums.length; for (int i = 0, j = 1; i < n; i += 2, j += 2) { while (i < n && nums[i] % 2 == 0) i += 2; while (j < n && nums[j] % 2 == 1) j += 2; if (i < n) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } } return nums; } } 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Solution: def sortArrayByParityII(self, nums: List[int]) -> List[int]: n = len(nums) i = 0 j = 1 while i < n: while i < n and nums[i] % 2 == 0: i += 2 while j < n and nums[j] % 2 == 1: j += 2 if i < n: nums[i], nums[j] = nums[j], nums[i] return nums