#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param array int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def reOrderArray(self , array: List[int]) -> List[int]:
        """
        i : 列表正在判断是否需要移动的下标
        even : 已经排了的偶数个数
        count : 判断了多少次的计数器
        lenarray : 传入的列表长度
        """
        i, even, count, lenarray = 0, 0, 0,len(array)
        # 只有在判断次数小于列表长度
        # 或者列表下标小于奇数个数(否则会影响已经排好的数据)
        # 才会进行循环
        while count <= lenarray and i < lenarray - even:
            if array[i] % 2 == 0:
                # 若为偶数,将其移到尾部并弹出,even+1
                array.append(array.pop(i))
                even +=1
            else:
                # 不是偶数,判断下标+1
                i += 1
            count += 1  # 判断次数加一
        return array