941. Valid Mountain Array

LeetCode easy original: C# #array #csharp #easy #leetcode
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.

Задав array целых чисел arr, return true тогда и только тогда, когда он является допустимым горным arrayом. Напомним, что arr является горным arrayом тогда и только тогда, когда: arr.length >= 3 Существует некоторое i с 0 < i < arr.length - 1 такое, что: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1]

Exemplo:

Input: arr = [2,1]

Output: false

C# solução

correspondente/original
public class Solution {
    public bool ValidMountainArray(int[] arr) {
        if (arr.Length < 3) return false;
        
        int i = 1;
        while (i < arr.Length && arr[i] > arr[i - 1]) i++;
        
        if (i == 1 || i == arr.Length) return false;
        
        while (i < arr.Length && arr[i] < arr[i - 1]) i++;
        
        return i == arr.Length;
    }
}

C++ solução

rascunho automático, revisar antes de enviar
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public bool ValidMountainArray(vector<int>& arr) {
        if (arr.size() < 3) return false;
        
        int i = 1;
        while (i < arr.size() && arr[i] > arr[i - 1]) i++;
        
        if (i == 1 || i == arr.size()) return false;
        
        while (i < arr.size() && arr[i] < arr[i - 1]) i++;
        
        return i == arr.size();
    }
}

Java solução

correspondente/original
class Solution {
    public boolean validMountainArray(int[] arr) {
        if (arr.length < 3) return false;
        
        int i = 1;
        while (i < arr.length && arr[i] > arr[i - 1]) i++;
        
        if (i == 1 || i == arr.length) return false;
        
        while (i < arr.length && arr[i] < arr[i - 1]) i++;
        
        return i == arr.length;
    }
}

JavaScript solução

correspondente/original
var validMountainArray = function(arr) {
    if (arr.length < 3) return false;
    
    let i = 1;
    while (i < arr.length && arr[i] > arr[i - 1]) i++;
    
    if (i === 1 || i === arr.length) return false;
    
    while (i < arr.length && arr[i] < arr[i - 1]) i++;
    
    return i === arr.length;
};

Python solução

correspondente/original
def validMountainArray(arr):
    if len(arr) < 3:
        return False
    
    i = 1
    while i < len(arr) and arr[i] > arr[i - 1]:
        i += 1
    
    if i == 1 or i == len(arr):
        return False
    
    while i < len(arr) and arr[i] < arr[i - 1]:
        i += 1
    
    return i == len(arr)

Go solução

correspondente/original
package main

func validMountainArray(arr []int) bool {
    if len(arr) < 3 {
        return false
    }
    
    i := 1
    for i < len(arr) && arr[i] > arr[i-1] {
        i++
    }
    
    if i == 1 || i == len(arr) {
        return false
    }
    
    for i < len(arr) && arr[i] < arr[i-1] {
        i++
    }
    
    return i == len(arr)
}

Algorithm

Убедиться, что длина arrayа не меньше 3.

find вершину горы, которая удовлетворяет условиям горного arrayа.

Проверить, что все elementы слева от вершины строго возрастают.

Проверить, что все elementы справа от вершины строго убывают.

Вернуть true, если оба условия выполнены, иначе вернуть false.

😎

Vacancies for this task

vagas ativas with overlapping task tags are mostradas.

Todas as vagas
Ainda não há vagas ativas.