給你乙個整數陣列 nums ,你需要找出乙個 連續子陣列 ,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。
請你找出符合題意的 最短 子陣列,並輸出它的長度。
整個陣列可以分成三段,左段(公升序),中段(無序),右段(公升序)。
中段的最大值小於右段的所有值,中段的最小值大於左段的最大值。
從左往右遍歷陣列,維護最大值,最右側的小於最大值的元素,就是無序陣列的右邊界。
從右往左遍歷陣列,維護最小值,最左側大於最小值的元素,就是無序陣列的左邊界。
int len = nums.length;
int end =-1
;int begin =0;
int max = nums[0]
;int min = nums[len-1]
;for
(int i =
0; i < len; i++)if
(nums[len-
1-i]
> min)
}return end-begin+
1;
以上。 leetcode 581 最短無序連續子陣列
給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...
leetcode 581 最短無序連續子陣列
給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...
LeetCode581 最短無序連續子陣列
給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。你找到的子陣列應是最短的,請輸出它的長度。示例 1 輸入 2,6,4,8,10,9,15 輸出 5 解釋 你只需要對 6,4,8,10,9 進行公升序排序,那麼整個表都會變為公升序排序。說明...