python logic的GFG问题错误测试用例;将数组排序为0、1和2“;

python logic的GFG问题错误测试用例;将数组排序为0、1和2“;,python,arrays,list,Python,Arrays,List,给定一个大小为N的数组,其中只包含0、1和2;按升序对数组排序 例1: 输入: N=5 arr[]={0 2 1 2 0} 输出: 0 0 1 2 2 说明: 0s、1s和2s是隔离的 按升序排列 输入代码: ''' 类解决方案: def sort012(自身、arr、n): 低=中=arr[0] 高=透镜(arr)-1 中途为什么不简单地使用内置的sort() arr.sort() 有没有一种独特的方法可以解决这个问题?为什么这么复杂?只需计算0、1、2的数量,然后返回用此信息构造的数组。这是

给定一个大小为N的数组,其中只包含0、1和2;按升序对数组排序

例1:

输入: N=5 arr[]={0 2 1 2 0} 输出: 0 0 1 2 2 说明: 0s、1s和2s是隔离的 按升序排列

输入代码: ''' 类解决方案: def sort012(自身、arr、n): 低=中=arr[0] 高=透镜(arr)-1


中途为什么不简单地使用内置的
sort()

arr.sort()


有没有一种独特的方法可以解决这个问题?

为什么这么复杂?只需计算
0
1
2
的数量,然后返回用此信息构造的数组。这是一个很好的方法谢谢兄弟。。。!!!是的,我知道这是内置函数,但我想写函数来解决这个问题
    while mid <= high:
        if arr[mid] ==  0:
            arr[mid],arr[low] = arr[low],arr[mid]
            mid+=1
            low+=1
        elif arr[mid] == 1:
            mid+=1
        else:
            arr[mid],arr[high]= arr[high],arr[mid]
            high-=1
    return arr
    
    # code here
    # arr.sort()
    # return arr