• leetcode 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
    解释:不含 “山脉”。
     

    提示:

    0 <= A.length <= 10000
    0 <= A[i] <= 10000

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-mountain-in-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution {
    public:
        int longestMountain(vector<int>& A) {
            int d = 0,ans = 0,flag = 0;
            for(int i = 1;i < A.size();i ++) {
                if(A[i] > A[i - 1]) {
                    if(flag == 1) d ++;
                    else {
                        ans = max(ans,d);
                        flag = 1;
                        d = 2;
                    }
                }
                else if(A[i] < A[i - 1]) {
                    if(flag == 1) {
                        d ++;
                        flag = -1;
                    }
                    else if(flag == -1) {
                        d ++;
                    }
                }
                else {
                    if(flag == -1) ans = max(ans,d);
                    d = 0;
                    flag = 0;
                }
            }
            if(flag == -1) ans = max(ans,d);
            return ans;
        }
    };
  • 相关阅读:
    6.11 考试修改+总结
    6.10 考试修改+总结+颓废记
    我们都一样
    【HDU 5730】Shell Necklace
    【SPOJ 8093】Sevenk Love Oimaster
    【BZOJ 3238】【AHOI 2013】差异
    【UOJ #131】【NOI 2015】品酒大会
    【SPOJ 220】Relevant Phrases of Annihilation
    【POJ 3177】Redundant Paths
    【POJ 2186】Popular Cows
  • 原文地址:https://www.cnblogs.com/8023spz/p/13872128.html
Copyright © 2020-2023  润新知