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

代码题(23)— 数组中的最长山脉

时间:2018-07-24 13:10:44      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:ges   注意   false   size   数组   code   ...   属性   col   

1、845. 数组中的最长山脉

我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”

  • B.length >= 3
  • 存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1]

(注意:B 可以是 A 的任意子数组,包括整个数组 A。)

给出一个整数数组 A,返回最长 “山脉” 的长度。

如果不含有 “山脉” 则返回 0。 

示例 1:

输入:[2,1,4,7,3,2,5]
输出:5
解释:最长的 “山脉” 是 [1,4,7,3,2],长度为 5。

示例 2:

输入:[2,2,2]
输出:0
解释:不含 “山脉”。

提示:

  1. 0 <= A.length <= 10000
  2. 0 <= A[i] <= 10000
class Solution {
public:
    int longestMountain(vector<int>& numbers) {
        int num = numbers.size();
        if(num<3)
            return 0;
        int start = 0, maxlen = 0;
        
        for (int i = 0; i < num - 1; ++i)
        {
            int temp = 1,low=i;
            bool pre=false, next= false;
            while (low<num-1 && numbers[low] < numbers[low+1])
            {
                low++;
                temp++;
                pre = true;
            }
            while (low<num-1 && numbers[low] > numbers[low + 1])
            {
                low++;
                temp++;
                next = true;
            }
            if (pre && next)
                maxlen = max(temp, maxlen);

        }
        return maxlen;
    }
};

 

代码题(23)— 数组中的最长山脉

标签:ges   注意   false   size   数组   code   ...   属性   col   

原文地址:https://www.cnblogs.com/eilearn/p/9359257.html

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