C語言重構 581 最短無序連續子陣列

2021-10-10 06:59:56 字數 571 閱讀 1692

所有題目源**:git位址

題目

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。

你找到的子陣列應是最短的,請輸出它的長度。

示例 1

:輸入:[2

,6,4

,8,10

,9,15

]輸出:

5解釋: 你只需要對 [6,

4,8,

10,9] 進行公升序排序,那麼整個表都會變為公升序排序。

說明 :

輸入的陣列長度範圍在 [1,

10,000]。

輸入的陣列可能包含重複元素 ,所以公升序的意思是<=。

方案:

class

solution

else

//如果當前值比最小值要大,則說明區間有序,則可以將begin邊界往後移,

if(nums[len-i-1]

>min)

else

}return end-begin+1;

}};

複雜度計算

581 最短無序連續子陣列

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。複製陣列,對該陣列排序,然後和原陣列相比較,得到兩頭第乙個不一樣元素的位置,這個區間的長度即為返回值。這種方式的負責度是 o 排序的複雜度 o n ...

581 最短無序連續子陣列

給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。輸入的陣列長度...

581 最短無序連續子陣列

581.最短無序連續子陣列 關鍵字 逆序數,單調棧 給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9...