941. Valid Mountain Array
Task text is translated from Russian for the selected interface language. Code is left unchanged.
Задав 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]
Example:
Input: arr = [2,1]
Output: false
C# solution
matched/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
auto-draft, review before submit#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
matched/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
matched/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
matched/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
matched/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
Active vacancies with overlapping task tags are shown.
There are no active vacancies yet.