码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode 最短无序连续子数组

时间:2019-09-06 15:49:35      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:turn   ons   close   pen   题目   class   最大   sed   最小   

题目链接: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 最短无序连续子数组

标签:turn   ons   close   pen   题目   class   最大   sed   最小   

原文地址:https://www.cnblogs.com/zaq19970105/p/11475160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!