leetcode-581:最短无序连续子数组

简介: leetcode-581:最短无序连续子数组

题目

题目连接

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

请你找出符合题意的 最短 子数组,并输出它的长度。

示例 1:

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

示例 2:

输入:nums = [1,2,3,4]
输出:0

示例 3:

输入:nums = [1]
输出:0

解题

方法一:查找左右边界

参考链接

class Solution {
public:
    int findUnsortedSubarray(vector<int>& nums) {
        int n=nums.size();
        int right=-1;
        int max=nums[0];
        for(int i=0;i<n;i++){
            if(nums[i]<max){
                right=i;
            }else{
                max=nums[i];
            }
        }
        int left=0;
        int min=nums[n-1];
        for(int i=n-1;i>=0;i--){
            if(nums[i]>min){
                left=i;
            }else{
                min=nums[i];
            }
        }
        return right-left+1>0?right-left+1:0;
    }
};


相关文章
|
6月前
|
算法
LeetCode题:581. 最短无序连续子数组,242. 有效的字母异位词,202. 快乐数
LeetCode题:581. 最短无序连续子数组,242. 有效的字母异位词,202. 快乐数
51 0
|
6月前
leetcode-1438:绝对差不超过限制的最长连续子数组
leetcode-1438:绝对差不超过限制的最长连续子数组
44 0
图解LeetCode——剑指 Offer 42. 连续子数组的最大和
图解LeetCode——剑指 Offer 42. 连续子数组的最大和
96 0
【LeetCode】-- 剑指 Offer 42. 连续子数组的最大和
【LeetCode】-- 剑指 Offer 42. 连续子数组的最大和
【LeetCode】-- 剑指 Offer 42. 连续子数组的最大和
|
Java Python
【LeetCode每日一题】剑指 Offer 42. 连续子数组的最大和(持续更新)
【LeetCode每日一题】剑指 Offer 42. 连续子数组的最大和(持续更新)
78 0
|
Oracle 关系型数据库 Java
LeetCode(剑指 Offer)- 42. 连续子数组的最大和
LeetCode(剑指 Offer)- 42. 连续子数组的最大和
85 0
LeetCode(剑指 Offer)- 42. 连续子数组的最大和
|
算法 前端开发 程序员
「LeetCode」剑指Offer-44连续子数组的最大和⚡️
「LeetCode」剑指Offer-44连续子数组的最大和⚡️
106 0
「LeetCode」剑指Offer-44连续子数组的最大和⚡️
【刷穿 LeetCode】最短无序连续子数组 :「双指针 + 排序」&「双指针 + 线性扫描」| 8月更文挑战
【刷穿 LeetCode】最短无序连续子数组 :「双指针 + 排序」&「双指针 + 线性扫描」| 8月更文挑战
【leetcode-剑指 Offer 42】连续子数组的最大和
题目 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4]
LeetCode——剑指 Offer 42【连续子数组的最大和】
LeetCode——剑指 Offer 42【连续子数组的最大和】
LeetCode——剑指 Offer 42【连续子数组的最大和】