高频面试题:部分排序
Posted 3Sunremitting
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高频面试题:部分排序相关的知识,希望对你有一定的参考价值。
题目描述
给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。
# 部分排序
def subSort(arr):
n=len(arr)
maxx,minn=-float('inf'),float('inf')
l,r=-1,-1
for i in range(n):
if arr[i]>=maxx:
maxx=arr[i]
else:
r=i
if arr[n-1-i]<=minn:
minn=arr[n-1-i]
else:
l=n-1-i
return [l,r]
a=[1,2,4,7,10,11,7,12,6,7,16,18,19]
print(subSort(a))
以上是关于高频面试题:部分排序的主要内容,如果未能解决你的问题,请参考以下文章