首页 > 其他分享 >LeetCode 581. 最短无序连续子数组

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

时间:2023-08-01 11:12:07浏览次数:30  
标签:nums int 581 最短 num min LeetCode

class Solution {
public:
    int findUnsortedSubarray(vector<int>& nums) {
        int n=nums.size();
        int l=0,r=n-1;
        while(l<n-1&&nums[l]<=nums[l+1]) l++;
        while(r>0&&nums[r]>=nums[r-1])  r--;
        int min_num=INT_MAX,max_num=INT_MIN;
        if(l==n-1||r==0)    return 0;
        for(int i=0;i<r;i++)    max_num=max(max_num,nums[i]);
        for(int i=l;i<n;i++)    min_num=min(min_num,nums[i]);
        while(l>=0&&nums[l]>min_num)    l--;
        while(r<n&&nums[r]<max_num) r++;
        return r-l-1;
    }
};

标签:nums,int,581,最短,num,min,LeetCode
From: https://www.cnblogs.com/tangxibomb/p/17595955.html

相关文章

  • 第 356 场周赛 - 力扣(LeetCode)
    第356场周赛-力扣(LeetCode)2798.满足目标工作时长的员工数目-力扣(LeetCode)一次遍历classSolution{public:intnumberOfEmployeesWhoMetTarget(vector<int>&hours,inttarget){intans=0;for(autoi:hours)ans+=......
  • 代码随想录算法训练营第三天| LeetCode 242.有效的字母异位词 349. 两个数组的交集
    242.有效的字母异位词    卡哥建议: 这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处。    题目链接/文章讲解/视频讲解: https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html   做题思路:......
  • leetcode-n-sum总结
    总结一下leetcode中遇见的2-sum,3-sum,4-sum问题,并扩展到n-sum。1.两数之和-力扣(LeetCode)梦开始的地方,不多说。classSolution{publicint[]twoSum(int[]nums,inttarget){Map<Integer,Integer>map=newHashMap<>();for(inti=0;i<......
  • 2800.包含三个字符串的最短字符串-356
    包含三个字符串的最短字符串给你三个字符串a,b和c,你的任务是找到长度最短的字符串,且这三个字符串都是它的子字符串。如果有多个这样的字符串,请你返回字典序最小的一个。请你返回满足题目要求的字符串。注意:两个长度相同的字符串a和b,如果在第一个不相同的字符......
  • leetcode集训-2023年7月
    今天我想和大家分享一下我参与LeetcodeSQL题集训一个月来的心得体会。在这段时间里,我真的深入感受到SQL语句和数据库API的魅力,也体验到了数据库世界的各种趣味与挑战。SQL语句的执行顺序主要包含以下几个步骤:FROM:指定要查询的表或视图。WHERE:对FROM子句中的表进行条件过滤,只选择满......
  • LeetCode/课程表IV
    你总共需要上numCourses门课,课程编号依次为0到numCourses-1。你会得到一个数组prerequisite,其中prerequisites[i]=[ai,bi]表示如果你想选bi课程,你必须先选ai课程。有的课会有直接的先修课程,比如如果想上课程1,你必须先上课程0,那么会以[0,1]数对的形式给......
  • 最短路
    看视频看了好久才理解的啊啊啊啊啊啊啊啊啊啊Dijkstra(单源路径,贪心原理,负权边别来沾边)我只会写堆化版,朴素版太过复杂了(自我感觉)这是cf中的dijkstra题目,1900的难度,当时卡了三天。。。。1#include<iostream>2#include<vector>3#include<queue>4#include<cstdio>......
  • 代码随想录算法训练营第四天| LeetCode 24. 两两交换链表中的节点 19.删除链表的倒
    24.两两交换链表中的节点     卡哥建议:用虚拟头结点,这样会方便很多。 本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。   题目链接/文章讲解/视频讲解:https://programmercarl.com/0024.%E4%B8%A4%E4%B8%A4%E4%BA%......
  • LeetCode做题笔记
    LeetCode做题笔记3.无重复字符的最长子串最核心的就是维护一个字符串区间,同时保证其中的每个字符都只出现过一次。最最最暴力的就是枚举可能出现的每个字符串区间,然后确保里边元素不重复,然后找出最长的字符串有多少元素。再进一步的想法就是由小到大的构建这样的字符串。用双指......
  • LeetCode 热题 100 之 56. 合并区间
    题目以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解......