package
0.0.0-20230809123828-b071cee2968a
Repository: https://github.com/codehanhan/leetcode-go.git
Documentation: pkg.go.dev

# README

面试题 16.16.部分排序

1. 题目描述

给定一个整数数组,编写一个函数,找出索引 mn ,只要将索引区间 [m,n] 的元素排好序,整个数组就是有序的。注意: n-m 尽量最小,也就是说,找出符合条件的最短序列。函数返回值为 [m,n] ,若不存在这样的 mn (例如整个数组是有序的),请返回 [-1,-1]

示例:

输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]
输出: [3,9]

提示:

  • 0 <= len(array) <= 1000000

标签 贪心 数组 双指针 排序 单调栈

2. 解题

所求区间[l, r]

对于l,其右侧必存在小于array[l]的值,且array[l]为'小于右侧最小值的'最大值

对于r,其左侧必存在大于array[r]的值,且array[r]为'大于左侧最大值的'最小值