博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift]LeetCode941. 有效的山脉数组 | Valid Mountain Array
阅读量:5056 次
发布时间:2019-06-12

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

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

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:

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

给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false

让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:

  • A.length >= 3
  • 在 0 < i < A.length - 1 条件下,存在 i 使得:
    • A[0] < A[1] < ... A[i-1] < A[i]
    • A[i] > A[i+1] > ... > A[B.length - 1]

示例 1:

输入:[2,1]输出:false

示例 2:

输入:[3,5,5]输出:false

示例 3:

输入:[0,3,2,1]输出:true

 提示:

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

256ms

1 class Solution { 2     func validMountainArray(_ A: [Int]) -> Bool { 3         var n:Int = A.count 4         if n < 3 {
return false} 5 var pre:Int = n - 1 6 for i in 0..<(n - 1) 7 { 8 if A[i] >= A[i + 1] 9 {10 pre = i11 break12 }13 }14 if pre == 0 || pre == n-1 {
return false}15 for i in pre..<(n - 1)16 {17 if A[i] <= A[i + 1] {
return false}18 }19 return true20 }21 }

256ms

1 class Solution { 2     func validMountainArray(_ A: [Int]) -> Bool { 3         let n = A.count 4         var i = 0 5         var j = n-1 6         while i + 1 < n , A[i] < A[i+1]{ 7             i+=1 8         } 9         while j > 0 , A[j] < A[j-1]{10             j-=111         }12         13         return i == j && i > 0 && i < n - 114     }15 }

260ms

1 class Solution { 2     func validMountainArray(_ A: [Int]) -> Bool { 3         var i = 1 4         while i < A.count && A[i] > A[i-1] { 5             i += 1 6         } 7         if i == 1 || i == A.count { return false } 8         while i < A.count && A[i] < A[i-1] { 9             i += 110         }11         return i == A.count12     }13 }

264ms

1 class Solution { 2     func validMountainArray(_ A: [Int]) -> Bool { 3         if A.count < 3 { 4             return false 5         } 6          7         if A[0] > A[1] { 8             return false 9         }10         11         var startedFalling = false12         for i in 1..
A[i] {18 startedFalling = true19 } else {20 return false21 }22 }23 24 return startedFalling25 }26 }

388ms

1 class Solution { 2     func validMountainArray(_ A: [Int]) -> Bool { 3         if A.count == 0 { 4             return false 5         } 6          7         var maxValue = A.max()! 8         var result = true 9         var direction = 010         // 0 -> increase ; 1 -> decrease11         12         if A[0] == maxValue {13             return false14         }15         16         for index in 0..
= A[index+1]) ||20 (direction == 1 && A[index] <= A[index+1])21 {22 result = false23 break24 }25 }26 27 if direction == 0 {28 return false29 }30 31 return result32 }33 }

 

转载于:https://www.cnblogs.com/strengthen/p/9977686.html

你可能感兴趣的文章
UVA 11609 Teams 组合数学+快速幂
查看>>
UVA - 1401 Remember the Word trie+DP
查看>>
1004. Counting Leaves (30)
查看>>
MyBatis的SQL语句映射文件详解
查看>>
高精加
查看>>
线性回归
查看>>
TCP、UDP以及HTTP的简单讲解
查看>>
Python学习之路-24 (面向对象Python2.7类继承)
查看>>
数据挖掘概念杂记
查看>>
MongoDB工具
查看>>
JAVA反射机制(转)
查看>>
springboot扫描通用的依赖模块
查看>>
一个用于图片上传的工具类(原)
查看>>
冒泡排序算法
查看>>
ajax的serialize()方法
查看>>
vue.js
查看>>
Swift - 39 - 枚举类型关联默认值
查看>>
测试随笔功能
查看>>
SPOJ #692. Fruit Farm
查看>>
LeetCode "Teemo Attacking"
查看>>