问题描述(原题链接)
给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。
请你找出符合题意的 最短 子数组,并输出它的长度。
代码:
class Solution {
public int findUnsortedSubarray(int[] nums) {
//去掉左边重叠部分、右边重叠部分
int[] temp = Arrays.copyOf(nums,nums.length);
Arrays.sort(temp);
int i=0;
int j = nums.length-1;
while(i<=nums.length-1 && nums[i]==temp[i]){
i++;
}
while(j>=0 && nums[j]==temp[j]){
j--;
}
if(j>=i)
return j-i+1;
else return 0;
}
}