| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | func findUnsortedSubarray(nums []int) int {	i, j, max, min := 0, -1, nums[0], nums[len(nums)-1]	for l, r := 0, len(nums)-1; 0 <= r; l, r = l+1, r-1 {		max = maxInt(max, nums[l])		min = minInt(min, nums[r])		if nums[l] != max {			j = l // The last num that < max		}		if nums[r] != min {			i = r // The last num that > min		}	}	return j - i + 1}func maxInt(x, y int) int {	if x < y {		return y	}	return x}func minInt(x, y int) int {	if x < y {		return x	}	return y}func findUnsortedSubarraySort(nums []int) int {	n := len(nums)	sorted := make([]int, n)	copy(sorted, nums)	sort.Ints(sorted)	l, r := 0, n-1	for ; l < n && nums[l] == sorted[l]; l++ {	}	if l == n {		return 0	}	for ; nums[r] == sorted[r]; r-- {	}	return r - l + 1}
 |