LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。

解题思路:
寻找无序连续子数组长度,那么就拷贝一份数组并排序,找他们之间不连续数组长度即可,分别从头和从尾查询,遇到不同停止,如果全部有序,那么在头尾指针相遇时候停止,返回0,代码如下:

class Solution {
public:
    int findUnsortedSubarray(vector<int>& nums) {
        vector<int> numsSort(nums);
        sort(numsSort.begin(), numsSort.end());
        int len = 0;
        int i, j;
        for(i = 0, j = nums.size() - 1; i < nums.size(), j >= 0; ) {
            if(nums[i] != numsSort[i] && nums[j] != numsSort[j]) {
                break;
            }
            if(i >= j) {
                return 0;
            }
            if(nums[i] == numsSort[i]) {
                i ++;
            }
            if(nums[j] == numsSort[j]) {
                j --;
            }
        }
        return j - i + 1;
    }
};

以上是关于LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)

LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路

LeetCode 581. 最短无序连续子数组/611. 有效三角形的个数/15. 三数之和/18. 四数之和(双指针)

581-最短无序连续子数组

LeetCode 581. Shortest Unsorted Continuous Subarray (最短无序连续子数组)

LeetCode:14. 最长公共前缀581. 最短无序连续子数组(python3)