给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。
你找到的子数组应是最短的,请输出它的长度。
这题用排序+双指针
class Solution:
def findUnsortedSubarray(self, nums: List[int]) -> int:
new = sorted(nums)#这里用了内置函数
start, end = 0, len(nums)-1
while start < end:
'''比较排序后和排序前对应位置上的不同'''
if nums[start] == new[start]:
start += 1
if nums[end] == new[end]:
end -= 1
if nums[start] != new[start] and nums[end] != new[end]:
break
if end <= start:
return 0
else:
return end - start + 1