Swift solution for LeetCode #941. Valid Mountain Array
- Ref: LeetCode
- My GitHub Repo: LeetCode_Swift
- Difficulty: Easy
- Topics: Array
Problem
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[A.length - 1]
정수 배열 A가 주어지면, 이 배열이 유효한 ‘산 배열’ 인 경우에만 ‘true’를 리턴하세요.
다음과 같은 경우에만 A가 ‘산 배열’임을 기억하세요:
- 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[A.length - 1]
Example
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
Solution
Submissions
- Runtime: 268 ms, faster than 44.75% of Swift online submissions for Valid Mountain Array.
- Memory Usage: 20.9 MB, less than 84.09% of Swift online submissions for Valid Mountain Array.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
func validMountainArray(_ A: [Int]) -> Bool {
guard A.count > 2 else {
return false
}
let length = A.count - 1
var increase = true
for i in 0..<length {
if increase {
if A[i] == A[i + 1] {
return false
} else if A[i] > A[i + 1] {
if i < 1 {
return false
}
increase = false
}
} else {
if A[i] == A[i + 1] {
return false
} else if A[i] < A[i + 1] {
return false
}
}
}
return increase ? false : true
}
Leave a comment