給定乙個整數陣列,你需要尋找乙個連續的子陣列,如果對這個子陣列進行公升序排序,那麼整個陣列都會變為公升序排序。
你找到的子陣列應是最短的,請輸出它的長度。
示例 1:
輸入: [2, 6, 4, 8, 10, 9, 15]
輸出: 5
解釋: 你只需要對 [6, 4, 8, 10, 9] 進行公升序排序,那麼整個表都會變為公升序排序。
說明 :
輸入的陣列長度範圍在 [1, 10,000]。
輸入的陣列可能包含重複元素 ,所以公升序的意思是<=。
思路:先排序一下,找兩端不一樣數字的位置,他們的差值就是需要公升序的陣列的長度!
public int findunsortedsubarray(int nums)
arrays.sort(nums);
int start = -1;
int end = nums.length;
for (int i = 0; i < nums.length; i++)
}for (int j = nums.length-1; j >= 0; j--)
}return start!=-1? (end - start + 1):0;
}
或者節約兩個變數:
public int findunsortedsubarray(int nums)
}return end-start+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 進行公升序排序,那麼整個表都會變為公升序排序。說明...