题目描述:
我们把数组 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
解释:不含 “山脉”。

提示:
0 <= A.length <= 10000
0 <= A[i] <= 10000

方法1:
主要思路:解题汇总链接
(1)每次找到该次可能形成的山脉的左端,然后判断该山脉是否形成;

class Solution {public:int longestMountain(vector<int>& arr) {int res=0;int pos=1;while(pos<arr.size()){while(pos<arr.size()&&arr[pos]<=arr[pos-1]){//找到可能的山脉的左端++pos;}int left=pos-1;//存储左端位置//遍历该山脉的左边部分while(pos<arr.size()&&arr[pos]>arr[pos-1]){++pos;}//判断是否需要提前终止,既该次可定不能形成山脉if(pos==arr.size()||arr[pos]==arr[pos-1]){continue;}//判断该次山脉的右边部分while(pos<arr.size()&&arr[pos]<arr[pos-1]){++pos;}//更新山脉的长度res=max(res,pos-left);}return res;}
};

845 数组中的最长山脉相关推荐

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

    链接:845. 数组中的最长山脉 题解: class Solution {public:int longestMountain(vector<int>& nums) {if(num ...

  2. LeetCode 845. 数组中的最长山脉

    https://leetcode-cn.com/problems/longest-mountain-in-array/ 难度:中等   我们把数组 A 中符合下列属性的任意连续子数组 B 称为 &qu ...

  3. LeetCode 845. 数组中的最长山脉(中心扩展)

    1. 题目 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 ...

  4. 16. Leetcode 845. 数组中的最长山脉 (数组-同向双指针-快慢指针)

    把符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 arr[0] < arr[1 ...

  5. 0数组中等 LeetCode845. 数组中的最长山脉

    845. 数组中的最长山脉 描述 把符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 ...

  6. 力扣 数组中的最长山脉

    力扣 数组中的最长山脉 题目描述 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.le ...

  7. LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉

    描述: 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B ...

  8. JAVA程序设计:数组中的最长山脉(LeetCode:845)

    我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B[0] ...

  9. Leetcode--845. 数组中的最长山脉

    我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B[0] ...

  10. Leetcode每日一题:845.longest-mountain-in-array(数组中的最长山脉)

    思路:这道题可以设两个标志位up 和 down,分别表示上山状态和经过上山后的下山状态,所以会遇到以下几种情况,分情况处理即可: 1.遇到上坡: 下山状态down==true遇到上坡,说明前一个山脉已 ...

最新文章

  1. [转]获取机器的硬件信息(CPU ID序列号, 主板信息,硬盘序列号,系统信息)
  2. python选出奇数并降序_奇数结点升序偶数结点降序的单链表排序(Python实现)
  3. 如何在R中使用range()?
  4. Win10推荐一款Terminal
  5. Ace在线代码编辑器使用
  6. 11款超5000星 后台管理模板, 总有一款适合你!
  7. Flex4序列号 adobe flash builder 4 序列号
  8. 单例模式详解(附常见的7种单例模式源码)
  9. Ubuntu 16 安装qq教程
  10. 合宙 air720 模块通过串口助手连接到阿里云 IOT
  11. java问题解读,String类为什么是final的
  12. 椭圆曲线加密中定义的加法运算
  13. YOLOv5-Lite:NCNN+Int8部署和量化,树莓派也可实时
  14. 怎样给证件照快速改底色?告诉大家一个简单方法
  15. 深度学习部署:Windows安装pycocotools报错解决方法
  16. 嘉立创电路板制作过程全流程详解(三):图电、AOI
  17. 熔断器 Hystrix 源码解析 —— 命令执行(三)之执行超时
  18. 博图SCL_递归算法的应用
  19. docker替换阿里云镜像源
  20. README文档模板 含下载地址0积分 项目文档模板 springboot文档示例 readme参考文档 目录跳转 项目架构 使用说明 目录结构 等等 (含附件下载)

热门文章

  1. layui 图片剪切/截取
  2. 内存管理之页转换 virt_to_page
  3. HTML做一个传统节日端午节 带设计报告4500字
  4. fms5序列号_火枫 FMS-105分体式炉头测评
  5. 竞赛|阿里巴巴全球调度算法大赛
  6. 多声道在系统和软件里的设置与应用(普通声卡和dante声卡)
  7. HTML5期末大作业:餐饮文化网站设计——餐饮文化(8页) HTML+CSS+JavaScript 学生DW网页设计美食文化
  8. 有关php外文期刊,口腔外文杂志、收录数据库、参考信息汇总
  9. 2014 计算机学科 排名,2014QS世界大学学科排名:计算机学科排行榜
  10. 导航动态避让算法RVO的优化ORCA(Optimal Reciprocal Collision Avoidance)