941. Valid Mountain Array

LeetCode easy original: C# #array #csharp #easy #leetcode
Il testo del problema è tradotto dal russo per la lingua selezionata. Il codice resta invariato.

Задав 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]

Esempio:

Input: arr = [2,1]

Output: false

C# soluzione

abbinato/originale
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++ soluzione

bozza automatica, rivedere prima dell'invio
#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 soluzione

abbinato/originale
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 soluzione

abbinato/originale
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 soluzione

abbinato/originale
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 soluzione

abbinato/originale
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

offerte attive with overlapping task tags are mostrati.

Tutte le offerte
Non ci sono ancora offerte attive.