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 ;
以上是关于LeetCode 最短无序连续子数组的主要内容,如果未能解决你的问题,请参考以下文章
leetcode581 最短无序连续子数组(Easy不简单)
LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
Leetcode——长度最小的子数组 / 最短无序连续子数组 / 和为k的连续子数组