581 最短無序連續子陣列

2021-10-16 09:27:06 字數 831 閱讀 4645

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

請你找出符合題意的最短子陣列,並輸出它的長度。

示例 1:

輸入:nums = [2,6,4,8,10,9,15]

輸出:5

解釋:你只需要對 [6, 4, 8, 10, 9] 進行公升序排序,那麼整個表都會變為公升序排序。

示例 2:

輸入:nums = [1,2,3,4]

輸出:0

示例 3:

輸入:nums = [1]

輸出:0

思路:從左到右迴圈,記錄最大值為 max,若 nums[i] < max, 則表明位置 i 需要調整, 迴圈結束,記錄需要調整的最大位置 i 為 right; 同理,從右到左迴圈,記錄最小值為 min, 若 nums[i] > min, 則表明位置 i 需要調整,迴圈結束,記錄需要調整的最小位置 i 為 left.

**實現

class solution  else 

}for (int i = nums.length - 1; i >= 0 ; i--) else

}if (left == right) else

} }

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...