581.最短无序连续子数组(JS思路简单)——LeetCode

题目描述:

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

你找到的子数组应是最短的,请输出它的长度。

示例 1:

输入: [2, 6, 4, 8, 10, 9, 15]
输出: 5
解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

将数组排序,然后遍历一遍,将所有需要调整位置的数的下标存到一个新数组里,最后拿新数组最右边的值减去最左边的值再加上1,就是结果。

代码:

var findUnsortedSubarray = function(nums) {
            let targetArr = [];    //用来保存下标
            let newArr = nums.map(i=>i); //复制数组
            nums.sort(function(a,b){return a-b;}); //对原数组排序
            for(let i=0;i

结果:

在这里插入图片描述

你可能感兴趣的:(LeetCode)