給你乙個整數陣列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...