LeetCode 最短无序连续子数组

Posted zaq19970105

tags:

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

题目链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/

题目大意:

  略.

分析:

  如果排序区间为 [L, R], 那么 nums[L] 一定大于区间内的最小值,而 nums[R] 一定大于区间内的最大值, 按照这个特性分别求出左右端点即可.

代码如下:

技术图片
 1 const int inf = 0x7fffffff;
 2 
 3 class Solution 
 4 public:
 5     int findUnsortedSubarray(vector<int>& nums) 
 6         int L = 0, R = -1;
 7         int N = nums.size();
 8         int maxNum = -inf, minNum = inf;
 9         
10         for(int i = 0; i < N; ++i) 
11             if(maxNum <= nums[i]) maxNum = nums[i];
12             else R = i;
13         
14         
15         for(int i = N - 1; i >= 0; --i) 
16             if(minNum >= nums[i]) minNum = nums[i];
17             else L = i;
18         
19         
20         return R - L + 1;
21     
22 ;
View Code

 

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

leetcode581 最短无序连续子数组(Easy不简单)

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

Leetcode——长度最小的子数组 / 最短无序连续子数组 / 和为k的连续子数组

LeetCode 最短无序连续子数组

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

leetcode 最短无序连续子数组 中等