941. Valid Mountain Array

LeetCode easy original: C# #array #csharp #easy #leetcode
선택한 UI 언어에 맞게 문제 텍스트를 러시아어에서 번역합니다. 코드는 변경하지 않습니다.

Задав 배열 целых чисел 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 표시됨.

전체 채용
아직 활성 채용이 없습니다.