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])

浙公网安备 33010602011771号