python logic的GFG问题错误测试用例;将数组排序为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)-1python 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的数量,然后返回用此信息构造的数组。这是
中途为什么不简单地使用内置的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