class Solution: def findUnsortedSubarray(self , nums: List[int]) -> int: # write code here nums2 = nums[:] nums2.sort() # 思路:复制一个数组,并且按升序排列,这个数组是满足题意后的数组;那么原数组和新数组排列不一样的子数组,就是我们要找的。 a, b = 0, 0 if nums2 == nums: return 0 for i in range(len(nums2)): if nums[i] != nums2[i]: # 从左往右数,当原数组和新数组的数字不一样,就是我们要找的子数组的左边界。 a = i break for j in range(len(nums2) - 1, -1, -1): if nums[j] != nums2[j]: # 从右往左数,当原数组和新数组的数字不一样,就是我们要找的子数组的右边界。 b = j break return (b - a + 1)