码迷,mamicode.com
首页 > 编程语言 > 详细

【数组】941. 有效的山脉数组

时间:2020-05-04 19:20:18      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:ret   class   png   判断   turn   tor   strong   val   com   

题目:

技术图片

 

 

解答:

方法一:线性扫描。

我们从数组的最左侧开始扫描,直到找到第一个不满足 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. 有效的山脉数组

标签:ret   class   png   判断   turn   tor   strong   val   com   

原文地址:https://www.cnblogs.com/ocpc/p/12827664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!