每日一题20201112(922. 按奇偶排序数组 II)

简介: 按奇偶排序数组方法

题目链接: 922. 按奇偶排序数组 II


11.jpg

image.png

思路


很简单,搞懂问题的核心就行,假设现在有奇数在偶数位上,偶数在奇数位上。
那么我们要做的就是,找到分别在对方位置上的数字,然后交换他们就行。
class Solution:
    def sortArrayByParityII(self, A: List[int]) -> List[int]:
        # 判断数组大小是否小于等于1,是则直接返回数组
        if len(A) <= 1:
            return A
        # 定义2个指针,i指向第一个偶数位,j指向第一个奇数位
        i, j = 0, 1
        # 循环结束的条件是i或者j超出数组范围
        while i < len(A) and j < len(A):
            # i不是偶数位且j不是奇数位 直接交换,并把i j分别挪到下一个位置
            if A[i] % 2 == 1 and A[j] % 2 == 0:
                A[i], A[j] = A[j], A[i]
                i += 2
                j += 2
            # i不是偶数, j是奇数 那么j去下一个位置
            elif A[i] % 2 == 1:
                j += 2
            # j不是奇数 i去下一个位置
            elif A[j] % 2 == 0:
                i += 2
            # i j位置都正确
            else:
                i += 2
                j += 2
        return A

12.jpg

image.png




相关文章
每日一题—— 按奇偶排序数组
每日一题—— 按奇偶排序数组
96 0
每日一题—— 按奇偶排序数组
LeetCode每日一题——905. 按奇偶排序数组
给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。
85 0
LeetCode每日一题(12)——按奇偶排序数组(双指针)
按奇偶排序数组 1.题目 2.示例 3.思路 4.代码
121 0
|
9月前
leetcode-922:按奇偶排序数组 II
leetcode-922:按奇偶排序数组 II
44 0
leetcode 922 按奇偶排序数组II
leetcode 922 按奇偶排序数组II
107 0
|
9月前
|
算法
LeetCode 922. 按奇偶排序数组 II
LeetCode 922. 按奇偶排序数组 II
56 0
|
机器学习/深度学习
LeetCode——905. 按奇偶排序数组
LeetCode——905. 按奇偶排序数组
101 0
LeetCode 训练场:905. 按奇偶排序数组
LeetCode 训练场:905. 按奇偶排序数组
58 0

热门文章

最新文章