美文网首页
LeetCode 第581题:最短无序连续子数组

LeetCode 第581题:最短无序连续子数组

作者: 放开那个BUG | 来源:发表于2021-06-13 14:10 被阅读0次

1、前言

题目描述

2、思路

这道题最简单的思路是,首先将原数组复制出来,然后对复制的数组 arrays 进行排序,最后遍历复制数组 arrays 和原数组 nums,然后比较他们的每个位置的数,如果数字不想等,说明是经过排序变换了位置,那么更新 start、end 的值。

3、代码

public class Q581_FindUnsortedSubarray {

    public int findUnsortedSubarray(int[] nums) {
        if(nums == null || nums.length == 0){
            return 0;
        }

        int[] arrays = nums.clone();
        Arrays.sort(arrays);

        int start = nums.length, end = 0;
        for(int i = 0; i < nums.length; i++){
            if(nums[i] != arrays[i]){
                start = Math.min(start, i);
                end = Math.max(end, i);
            }
        }

        return end - start >= 0 ? end - start + 1 : 0;
    }

    public static void main(String[] args) {
        System.out.println(new Q581_FindUnsortedSubarray().findUnsortedSubarray(new int[]{2,6,4,8,10,9,15}));
    }
}

相关文章

  • TOP 96 - 100

    581. 最短无序连续子数组[https://leetcode-cn.com/problems/shortest-...

  • LeetCode 第581题:最短无序连续子数组

    1、前言 2、思路 这道题最简单的思路是,首先将原数组复制出来,然后对复制的数组 arrays 进行排序,最后遍历...

  • leetcode 581 最短无序连续子数组

    双指针,将该数组于排序后的数组比较,找到两个位置开始不同的位置,然后做差即可求出长度。 感觉用 while 比用 ...

  • LeetCode 581. 最短无序连续子数组

    题目 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 ...

  • Leetcode 581. 最短无序连续子数组

    题目描述 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序...

  • 581. 最短无序连续子数组

    内容 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 ...

  • 581.最短无序连续子数组

    581. 最短无序连续子数组 难度简单375收藏分享切换为英文关注反馈 给定一个整数数组,你需要寻找一个连续的子数...

  • 581. 最短无序连续子数组

    给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到...

  • 581-最短无序连续子数组

    方法比较笨,将数组元素复制一份,重新排序,找到两个数组元素不同的位置索引,计算两个索引之间的距离即可。 大佬实现:...

  • 581. 最短无序连续子数组

    解法

网友评论

      本文标题:LeetCode 第581题:最短无序连续子数组

      本文链接:https://www.haomeiwen.com/subject/tycveltx.html