LeetCode-581. 最短无序连续子数组

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。

请你找出符合题意的 最短 子数组,并输出它的长度。

思路:双指针方法,从左右进行搜索

class Solution:
    def findUnsortedSubarray(self, nums: List[int]) -> int:
        l,r = 0, len(nums)-1
        while l <= r:
            Max = max(nums[l:r+1])
            Min = min(nums[l:r+1])
            if nums[r] != Max and nums[l] != Min:
                break
            if nums[l] == Min:
                l += 1
            if nums[r] == Max:
                r -= 1
            
        return len(nums[l:r+1])
posted @ 2021-08-03 15:40  小Aer  阅读(6)  评论(0)    收藏  举报  来源