581. 最短无序连续子数组

package leetcode;

import java.util.Arrays;

public class demo_581 {
    public int findUnsortedSubarray(int[] nums) {
        int[] arr=new int[nums.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = nums[i];
        }
        //保留排序之后的数组
        Arrays.sort(arr);
        int left=0;
        //左边开始,找出第一个排序后与原始数字不同的位置
        while(left<nums.length&&nums[left]==arr[left]) {
            left=left+1;
        }
        //原始数组是有序数组
        if(left==nums.length) {return 0;}
        //右边开始,找出第一个排序后与原始数字不同的位置
        int right=nums.length-1;
        while(right>-1&&nums[right]==arr[right]) {
            right--;
        }
        System.out.println(right-left+1);
        return right-left+1;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_581 demo=new demo_581();
        int[] nums= {2,6,4,8,10,9,15};
        demo.findUnsortedSubarray(nums);
    }

}

 

posted on 2022-04-27 16:19  一仟零一夜丶  阅读(29)  评论(0)    收藏  举报