首页 > 其他分享 >941. 有效的山脉数组

941. 有效的山脉数组

时间:2023-06-25 16:00:27浏览次数:47  
标签:arr false rhs len 941 lhs 数组 山脉 return

给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。

让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组:

  • arr.length >= 3
  • 在 0 < i < arr.length - 1 条件下,存在 i 使得:
  • arr[0] < arr[1] < ... arr[i-1] < arr[i]
  • arr[i] > arr[i+1] > ... > arr[arr.length - 1]

> 代码


class Solution {
public:
    bool validMountainArray(vector<int>& arr) {
        bool res; //是否为有效山脉
        int len = arr.size();
        if(len < 3) return false;
        int lhs = 0;
        int rhs = len - 1;
        while(lhs < rhs){
            if(arr[lhs+1] > arr[lhs]){
                lhs++;
            }
            else if(arr[rhs-1] > arr[rhs]){
                rhs--;
            }
            else{
                break;
            }
        }

        if(lhs == len-1 || rhs == 0){
            return false;
        }
        if(lhs == rhs){
            return true;
        }
        else{
            return false;
        }
    }
};

标签:arr,false,rhs,len,941,lhs,数组,山脉,return
From: https://www.cnblogs.com/lihaoxiang/p/17503139.html

相关文章

  • mongodb第八篇:数组操作
    db.students.insertOne({"_id":1,"grades":[80,85,90]})db.students.insertOne({"_id":2,"grades":[88,90,92]})db.students.insertOne({"_id":3,"grades":[85,100,90]})需求1、把_id为1的文档的grades数组中的85改成8......
  • 树状数组
    维护时间复杂度O(nlogn)查询时间复杂度O(logn)优点:好写缺点fw没啥用主要就是用一个叫lowbit的东西来实现用一个树状的东西维护区间和等,其实只要记住修改的时候+=lowbit(x),查询的时候-=lowbit(x)就行了1.板子这个应该都会吧qwq#include<bits/stdc++.h>#defineintlong......
  • C语言中将二维数组作为函数参数来传递
    C语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一,形参给出第二维的长度#include<stdio.h>voidfunc(intn,charstr[][5]){inti;for(i=0;i<n;i++)printf("/nstr[%d]=%s/n",i,str[i]);}voidmain(){char*p[3];charstr[]......
  • 【js学习笔记四】数组双重去重的方式三filter
     目录前言导语运行结果总结前言   我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语   数组......
  • 【js学习笔记五】数组双重去重的方式四先排序在对比
     目录前言导语 代码部分运行结果总结前言   我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语......
  • 【LeetCode摩尔投票】有趣的简单题:数组中出现次数超过一半的数字
    数组中出现次数超过一半的数字https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[1,2,3,......
  • Java 一维数组的使用
    Java一维数组的使用1.一维数组的定义在不知道数组内容可以直接使用下面的定义方法:int[]arr=newint[数组个数];或intarr[]=newint[数组个数];在知道数组内容可以使用如下:int[]arr={data1,data2,data.....};2.数组的传递数组的传递与其他基本类型的值传递不同,......
  • c语言-字符串+转义字符+注释、语句、函数、数组、操作符 2
    一、字符串+转义字符+注释字符串类型(相较于字符数据类型):eg:“”;//空字符串定义:由双引号引起的一串字符为字符串字面值,简称字符串。(后面默认会有\0,结束标志不算内容intmain(){chararr1[]="abc";//数组//"abc"——'a''b''c''\0'——'\0'......
  • 【剑指Offer】40、数组中只出现一次的数字
    【剑指Offer】40、数组中只出现一次的数字题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1)。解题思路:这道题目相对比较难,一般情况下,我们首先可以想到的是顺序扫描数组,但其时间复杂......
  • 二维数组的传参方式
    1.传数组整体格式:(1)给函数传参时,用数组名arr;(2)函数定义时,用intarr[3][5]接收;(3)在函数中打印元素时,用arr[1][1]。voidtest(intarr[3][5]){ printf("%d",arr[1][1]);}intmain(){ intarr[3][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}}; test(arr); return0;}2.传首元......