Talentd
FleetCode

581. Shortest Unsorted Continuous Subarray

Medium38.7% acceptance9 companies

Given an integer array nums, you need to find one continuous subarray such that if you only sort this subarray in non-decreasing order, then the whole array will be sorted in non-decreasing order.

Return the shortest such subarray and output its length.

Example 1:

Input: nums = [2,6,4,8,10,9,15]
Output: 5
Explanation: You need to sort [6, 4, 8, 10, 9] in ascending order to make the whole array sorted in ascending order.

Example 2:

Input: nums = [1,2,3,4]
Output: 0

Example 3:

Input: nums = [1]
Output: 0

Constraints:

  • 1 <= nums.length <= 104
  • -105 <= nums[i] <= 105
Follow up: Can you solve it in O(n) time complexity?
8:25
Still stuck?Read 4 approaches, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def findUnsortedSubarray(self, nums: List[int]) -> int:
3
Starter codePython 3Spaces: 4
Examples
Input
[2,6,4,8,10,9,15]
Input
[1,2,3,4]
Input
[1]
Your code is saved on this device.Solution