当前位置: 代码迷 >> 综合 >> Leetcode 922. Sort Array By Parity II
  详细解决方案

Leetcode 922. Sort Array By Parity II

热度:40   发布时间:2023-12-12 21:05:12.0

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Sort Array By Parity II

2. Solution

**解析:**Version 1,每次碰到一个位置与数值不对应的数时,都找一个与它奇偶性相反、位置与数值不对应的数交换。Version 2两个指针分别查找位置与数值不对应的奇数和偶数,然后交换数值。

  • Version 1
class Solution:def sortArrayByParityII(self, nums: List[int]) -> List[int]:for i in range(len(nums)):if i % 2 != nums[i] % 2:j = i + 1while j % 2 == nums[j] % 2:j += 2nums[i], nums[j] = nums[j], nums[i]return nums
  • Version 2
class Solution:def sortArrayByParityII(self, nums: List[int]) -> List[int]:n = len(nums)i = 0j = 1while i < n and j < n:while i < n and nums[i] % 2 == 0:i += 2while j < n and nums[j] % 2 == 1:j += 2if i < n and j < n:nums[i], nums[j] = nums[j], nums[i]return nums

Reference

  1. https://leetcode.com/problems/sort-array-by-parity-ii/
  相关解决方案