941. Valid Mountain Array

LeetCode easy original: C# #array #csharp #easy #leetcode
Văn bản bài toán được dịch từ tiếng Nga theo ngôn ngữ giao diện. Mã không thay đổi.

Задав mảng целых чисел arr, return true тогда и только тогда, когда он является допустимым горным mảngом. Напомним, что arr является горным mảngом тогда и только тогда, когда: 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]

Ví dụ:

Input: arr = [2,1]

Output: false

C# lời giải

đã khớp/gố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++ lời giải

bản nháp tự động, xem lại trước khi gửi
#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 lời giải

đã khớp/gốc
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 lời giải

đã khớp/gốc
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 lời giải

đã khớp/gốc
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 lời giải

đã khớp/gốc
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

Убедиться, что длина mảngа не меньше 3.

find вершину горы, которая удовлетворяет условиям горного mảngа.

Проверить, что все elementы слева от вершины строго возрастают.

Проверить, что все elementы справа от вершины строго убывают.

Вернуть true, если оба условия выполнены, иначе вернуть false.

😎

Vacancies for this task

việc làm đang hoạt động with overlapping task tags are đã hiển thị.

Tất cả việc làm
Chưa có việc làm đang hoạt động.