941. Valid Mountain Array
Le texte du problème est traduit du russe pour la langue sélectionnée. Le code reste inchangé.
Задав tableau целых чисел arr, return true тогда и только тогда, когда он является допустимым горным tableauом. Напомним, что arr является горным tableauом тогда и только тогда, когда: 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]
Exemple:
Input: arr = [2,1]
Output: false
C# solution
correspondant/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++ solution
brouillon automatique, à relire avant soumission#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 solution
correspondant/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 solution
correspondant/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 solution
correspondant/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 solution
correspondant/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
Убедиться, что длина tableauа не меньше 3.
find вершину горы, которая удовлетворяет условиям горного tableauа.
Проверить, что все elementы слева от вершины строго возрастают.
Проверить, что все elementы справа от вершины строго убывают.
Вернуть true, если оба условия выполнены, иначе вернуть false.
😎
Vacancies for this task
offres actives with overlapping task tags are affichés.
Il n'y a pas encore d'offres actives.