leetcode581 最短連續無序子陣列

2021-10-25 22:30:44 字數 558 閱讀 4673

給你乙個整數陣列 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 進行公升序排序,那麼整個表都會變為公升序排序。說明...