941. Valid Mountain Array
题目文本会按所选界面语言从俄语翻译;代码保持不变。
Задав 数组 целых чисел arr, return true тогда и только тогда, когда он является допустимым горным 数组ом. Напомним, что arr является горным 数组ом тогда и только тогда, когда: 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]
示例:
Input: arr = [2,1]
Output: false
C# 解法
匹配/原始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++ 解法
自动草稿,提交前请检查#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 解法
匹配/原始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 解法
匹配/原始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 解法
匹配/原始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 解法
匹配/原始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
Убедиться, что длина 数组а не меньше 3.
find вершину горы, которая удовлетворяет условиям горного 数组а.
Проверить, что все elementы слева от вершины строго возрастают.
Проверить, что все elementы справа от вершины строго убывают.
Вернуть true, если оба условия выполнены, иначе вернуть false.
😎
Vacancies for this task
活跃职位 with overlapping task tags are 已显示.
目前还没有活跃职位。