数组941. 有效的山脉数组

Posted ocpc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组941. 有效的山脉数组相关的知识,希望对你有一定的参考价值。

题目:

技术图片

 

 

解答:

方法一:线性扫描。

我们从数组的最左侧开始扫描,直到找到第一个不满足 A[i] < A[i + 1] 的 i,那么 i 就是这个数组的最高点。如果 i = 0 或者不存在这样的 i(即整个数组都是单调递增的),那么就返回 false。否则从 i 开始继续扫描,判断接下来的的位置 j 是否都满足 A[j] > A[j + 1],若都满足就返回 true,否则返回 false。

 1 class Solution {
 2 public:
 3     bool validMountainArray(vector<int>& A) 
 4     {
 5         int N = A.size();
 6         int i = 0;
 7 
 8         // walk up
 9         while (i+1 < N && A[i] < A[i+1])
10         {
11             i++;
12         }
13 
14         // peak can‘t be first or last
15         if (i == 0 || i == N-1)
16         {
17             return false;
18         }
19 
20         // walk down
21         while (i+1 < N && A[i] > A[i+1])
22         {
23             i++;
24         }
25 
26         return i == N-1;
27     }
28 };

 

以上是关于数组941. 有效的山脉数组的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 941. 有效的山脉数组(Valid Mountain Array)

数组941. 有效的山脉数组

leetcode第941题

嘎数组-有效的山脉数组

嘎数组-有效的山脉数组

Leetcode 941. Valid Mountain Array