2 1 需排序的最短子陣列長度

2022-09-03 04:00:11 字數 651 閱讀 3860

題目描述:

對於乙個無序陣列a,請設計乙個演算法,求出需要排序的最短子陣列的長度。

給定乙個整數陣列a及它的大小n,請返回最短子陣列的長度。

測試樣例:

[1,5,3,4,2,6,7],7

返回:4

1/*2

這個題在牛客網上的講解我感覺是有點問題的,

3因為預設了公升序排序!

4如下實現對陣列[8,7,6,5,4,3]的結果將會是6,

5實際上此時的結果應該為0,因為現在已經是有序的了。6*/

7 #include 8 #include 9

using

namespace

std;

1011

int findshortest(vector a, int

n) 22

if (r == -1)23

return0;

24int min = a[n-1

];25

int l = -1;26

for (int i = n-2; i >= 0; i--)

32return r-l+1

;33 }

1

//test:

2int

main()

演算法 需要排序的最短子陣列長度

給定乙個無序陣列,求出需要排序的最短子陣列的長度。例如 arr 返回4,因為只有 5,3,4,2 需要排序。解決這個問題可以在時間複雜度為o n 額外空間複雜度為o 1 完成。初始化變數nominindex 1,從右向左遍歷,便利的過程記錄右側出現過的數的最小值,記為min。假設當前數為arr i ...

待排序的最短子陣列長度 C 版

題目 對於乙個陣列,請設計乙個高效演算法計算需要排序的最短子陣列的長度。給定乙個int陣列a和陣列的大小n,請返回乙個二元組,代表所求序列的長度。原序列位置從0開始標號,若原序列有序,返回0 保證a中元素均為正整數。思路 分別從 左 右 記錄最大元素值 比較最大元素值和當前遍歷元素的大小 如果 最大...

JAVA語言之最短子陣列長度

對於乙個陣列,請設計乙個高效演算法計算需要排序的最短子陣列的長度。給定乙個int陣列a和陣列的大小n,請返回乙個二元組,代表所求序列的長度。原序列位置從0開始標號,若原序列有序,返回0 保證a中元素均為正整數。測試樣例 1,4,6,5,9,10 6 返回 2 思路 用乙個max和min分別來遍歷整個...