

Given an array of integers arr, return true if and only if it is a valid mountain array.
Recall that arr is a mountain array if and only if:

Constraints:
func validMountainArray(arr []int) bool {
    if len(arr) <= 2 {
        return false
    }
    l := 0
    r := len(arr) - 1
    for i := 0; i < len(arr)-1; i++ {
        if arr[i] < arr[i+1] {
            l++
        } else if arr[i] == arr[i+1] {
            return false
        } else {
            break
        }
    }
    for j := len(arr) - 1; j > 0; j-- {
        if arr[j] < arr[j-1] {
            r--
        } else if arr[j] == arr[j-1] {
            return false
        } else {
            break
        }
    }
        if l == r && r != len(arr)-1 && r != 0 {
        return true
    }
    return false
}func validMountainArray(arr []int) bool {
    l := len(arr)
    if l < 3 {
        return false
    }
    var top int = l
    for i := 1; i < l; i++ {
        if arr[i] > arr[i-1] {
            continue
        } else if arr[i] == arr[i-1] {
            return false
        } else {
            top = i-1
            break
        }
    }
    for i := top+1; i < l; i++ {
        if arr[i] < arr[i-1] {
            continue
        } else {
            return false
        }
    }
        return top > 0 && top < l-1
} func validMountainArray(A []int) bool {
    if len(A) < 3 {
        return false
    }
    i := 0
    for i < len(A)-2 {
        if A[i] == A[i+1] {
            return false
        } else if A[i] > A[i+1] {
            break
        }
        i++
    }
    if i == 0 || (i == len(A)-2 && A[i] < A[i+1]) {
        return false
    }
    for i < len(A)-1 {
        if A[i] == A[i+1] || A[i] < A[i+1] {
            return false
        }
        i++
    }
    return true
} func validMountainArray(arr []int) bool {
    if len(arr) < 3 {
        return false
    }
    up := 0
    down := 0
    goingUp := true
    for i := 1; i < len(arr); i++ {
        if arr[i-1] == arr[i] {
            return false
        }
        if goingUp {
            if arr[i-1] > arr[i] {
                goingUp = false
                down++
            } else {
                up++
            }
        } else {
            if arr[i-1] < arr[i] {
                return false
            } else {
                down++
            }
        }
    }
    if (up > 0 && down > 0) {
        return true
    }
    return false
}func validMountainArray(a []int) bool {
    if len(a) < 3 {
        return false
    }
    var mountainStart,slopeStart bool
    for i:= 0 ; i < len(a ) - 1 ;i++ {
        if a[i] == a[i+1]{
            return false
        }
        if a[i] < a[i+1] {
            mountainStart=true
            if slopeStart {
                return false
            }
            continue
        }else if a[i] > a[i+1] {
            if !mountainStart {
                return false
            }
            slopeStart = true
            continue
        }
    }
    if mountainStart && slopeStart {
        return true
    }
    return false
}| Arrays101 Replace Elements with Greatest Element on Right Side in GO (2) | 2022.03.05 | 
|---|---|
| Arrays 101 Code from Java to Go(In-Place Array Operations Introduction) (0) | 2022.03.05 | 
| Arrays101 Check If N and Its Double Exist in go (0) | 2022.03.02 | 
| Arrays 101 Code from Java to Go(Search in an Array) (0) | 2022.03.02 | 
| Array101 Remove Duplicates from Sorted Array in GO (0) | 2022.03.01 | 
댓글 영역