博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
941. Valid Mountain Array(python+cpp)
阅读量:3705 次
发布时间:2019-05-21

本文共 1133 字,大约阅读时间需要 3 分钟。

题目:

Given an array A of integers, return true if and only if it is a valid mountain array.

Recall that A is a mountain array if and only if:
 A.length >= 3
 There exists some i with 0 < i < A.length - 1 such that:
  A[0] < A[1] < ... A[i-1] < A[i]
  A[i] > A[i+1] > ... > A[B.length - 1]
Example 1:

Input: [2,1] Output: false

Example 2:

Input: [3,5,5] Output: false

Example 3:

Input: [0,3,2,1] Output: true

Note:

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

解释:

注意,要求只有一个山峰,用双指针,分别从两边往中间爬,判断最终两个指针是否指向同一个值而且在范围内。
python代码:

class Solution:    def validMountainArray(self, A):        """        :type A: List[int]        :rtype: bool        """        if len(A)<3:            return False        i,j,len_A=0,len(A)-1,len(A)        while i+1
A[i]: i+=1 while j-1>=0 and A[j-1]>A[j]: j-=1 return 0

c++代码:

class Solution {
public: bool validMountainArray(vector
& A) {
int i=0,j=A.size()-1,len_A=A.size(); while(i+1
A[i]) i++; while(j-1>=0 && A[j-1]>A[j]) j--; return i==j && i>0 && j

总结:

需要注意的就是,题目要求只有一个山峰。

转载地址:http://fwmcn.baihongyu.com/

你可能感兴趣的文章
git 关于 git push origin master 失败的问题解决
查看>>
古风排版
查看>>
编译和交叉编译openssl
查看>>
编译和交叉编译curl
查看>>
ubuntu下载安装Eclipse for c/c++ developers
查看>>
Sourcetree跳过注册和git和mercurial安装
查看>>
c语言16进制字符串转字节数组
查看>>
Windows下pc-lint下载安装以及搭建环境检查Linux下开发的工程代码
查看>>
Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS
查看>>
ubuntu下安装CUnit出现的问题及解决
查看>>
sourcetree出现提交成功但推送失败的问题
查看>>
c语言获取本地时间
查看>>
ubuntu中openwrt编译环境的搭建
查看>>
从字符串中获取指定字符串之间字符串
查看>>
16进制字符串转字节
查看>>
数据结构---单链表
查看>>
ACM日记(补)
查看>>
好题集锦
查看>>
ACM日记 再补
查看>>
ACM日记
查看>>