数组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. 有效的山脉数组的主要内容,如果未能解决你的问题,请参考以下文章