高频面试题:部分排序
发布日期:2021-05-08 01:41:33 浏览次数:24 分类:原创文章

本文共 475 字,大约阅读时间需要 1 分钟。

题目描述
给定一个整数数组,编写一个函数,找出索引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))

在这里插入图片描述

上一篇:找出不在数组中的最小的那个数字
下一篇:Python二位列表的排序(有多个元素需要排序)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月15日 23时05分11秒