招聘网站制作,长沙网络技术开发公司,深圳国际红树林中心,软文写作范文1. 题目
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”#xff1a;
B.length 3存在 0 i B.length - 1 使得 B[0] B[1] ... B[i-1] B[i] B[i1] ... B[B.length - 1] #xff08;注意#xff1a;B 可以是 A 的…1. 题目
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”
B.length 3存在 0 i B.length - 1 使得 B[0] B[1] ... B[i-1] B[i] B[i1] ... 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[i1] 的i点从i向左右扩展到lr记录最大长度i r跳过已经找过的地方再重复上述过程
class Solution {
public:int longestMountain(vectorint 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[i1]){l r i;while(l 1 A[l-1] A[l])l--;while(r A.size()-1 A[r] A[r1])r;maxlen max(maxlen, r-l1);i r;}}return maxlen;}
};44 ms 17.7 MB