LeetCode 845. 数组中的最长山脉(中心扩展)
1. 题目
我们把数组 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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-mountain-in-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 找到满足
A[i-1] < A[i] && A[i] > A[i+1]
的i
点,从i
向左右扩展到l,r
- 记录最大长度,
i = r
跳过已经找过的地方,再重复上述过程
class Solution {public:int longestMountain(vector<int>& A) {if(A.size() < 3)return 0;int i, l, r, maxlen = 0;for(i = 1; i < A.size()-1; ++i){if(A[i-1] < A[i] && A[i] > A[i+1]){l = r = i;while(l >= 1 && A[l-1] < A[l])l--;while(r < A.size()-1 && A[r] > A[r+1])r++;maxlen = max(maxlen, r-l+1);i = r;}}return maxlen;}
};
44 ms 17.7 MB
LeetCode 845. 数组中的最长山脉(中心扩展)相关推荐
- LeetCode 845. 数组中的最长山脉
https://leetcode-cn.com/problems/longest-mountain-in-array/ 难度:中等 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 &qu ...
- 16. Leetcode 845. 数组中的最长山脉 (数组-同向双指针-快慢指针)
把符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 arr[0] < arr[1 ...
- 845. 数组中的最长山脉
链接:845. 数组中的最长山脉 题解: class Solution {public:int longestMountain(vector<int>& nums) {if(num ...
- 0数组中等 LeetCode845. 数组中的最长山脉
845. 数组中的最长山脉 描述 把符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 ...
- LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉
描述: 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B ...
- 力扣 数组中的最长山脉
力扣 数组中的最长山脉 题目描述 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.le ...
- JAVA程序设计:数组中的最长山脉(LeetCode:845)
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B[0] ...
- Leetcode--845. 数组中的最长山脉
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B[0] ...
- Leetcode每日一题:845.longest-mountain-in-array(数组中的最长山脉)
思路:这道题可以设两个标志位up 和 down,分别表示上山状态和经过上山后的下山状态,所以会遇到以下几种情况,分情况处理即可: 1.遇到上坡: 下山状态down==true遇到上坡,说明前一个山脉已 ...
最新文章
- boost::histogram::indexed用法的测试程序
- 使用 HTTP 缓存防止不必要的网络请求
- Dapr微服务应用开发系列3:服务调用构件块
- liunx系统不能登陆的问题
- php如何打出的正方形行列,javascript实现输出指定行数正方形图案的方法
- mysql 配置自动截断_MySql超长自动截断实例详解
- 迷你星域冒险服务器维护中,迷你世界星域冒险
- Hyper-V 3.0网络虚拟化PART 4:私有交换机
- 无缝世界网游服务器架构的设计思路
- Looper对文件描述符的监控与处理
- 【经验分享】MAC系统自带截屏、录屏小工具
- KinectV2 qt opencv 实现平面测量
- Python自动化测试进阶系列——自动发邮件功能
- 必备配色攻略-绿色篇
- 无人机在环保行业中的应用
- 树莓派+L9110S电机模块
- 专业导师告诉你,有哪些51单片机教程值得大力推荐
- 搭配Online:瑞幸昔日“盟友”神州优车,与北汽集团达成战略合作
- 免安装版jdk的配置及使用(附绿色版jdk1.7及jdk1.8)
- 算法 - 随机密码生成算法
热门文章
- tbase同步mysql_mysql主从同步
- MATLAB 长度和像素_Matlab中短时傅里叶变换 spectrogram和stft的用法
- python中函数的参数传递(传值还是传引用)
- python 程序打包 vscode_使用VScode编写python程序并打包成.exe文件
- 动易sitefactory 数据库 mysql msssql_动易SiteFactory配置文件(web.config)常用配置节解读...
- 一些关于毫米波技术的文献
- c++远征之模板篇——标准模板库(STL)
- leetcode 764.Largest Plus Sign
- 什么时候需要好教材和好教材是怎样的
- unity 常用函数