941. Valid Mountain Array
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/originalpublic 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/originalclass 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/originalvar 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/originaldef 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/originalpackage 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.
Ainda não há vagas ativas.