思路:先遍历一遍数组,找到最大值max以及最大值索引max_index,然后从此处设立两个指针left和right,一个向左遍历,一个向右遍历,max左右两边应该都是递减的;

class Solution {public:bool validMountainArray(vector<int> &A){int len = A.size();if (len < 3){return false;}int max_index = 0, max = 0;//找出山峰for (int i = 0; i < len; i++){if (A[i] > max){max = A[i];max_index = i;}}//整个数组都是递增or递减时,return falseif (max_index == 0 || max_index == len - 1){return false;}//从山峰开上向左和向右检查,左右两边应该都是递减的int left = max_index - 1, right = max_index + 1;while (left >= 0){if (A[left] > A[left + 1]){return false;}left--;}while (right < len){if (A[right] >= A[right - 1]){return false;}right++;}return true;}
};

Leetcode每日一题:941.valid-mountain-array(有效的山脉数组)相关推荐

  1. 941. Valid Mountain Array 有效的山脉数组

    给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false. 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在 0 < ...

  2. Leetcode每日一题:992.sort-array-by-parity-ii(按奇偶排序数组Ⅱ)

    思路: 法1:建立一个与原数组同大小的数组res,两次遍历A,偶数放入res的偶下标,奇数放入奇下标: 法2:双指针: 法3:双端队列,遍历A,计数插入前端,偶数插入尾端,然后双指针(1首1尾)对队列 ...

  3. Leetcode每日一题:剑指 Offer 04.(二维数组中的查找)

    思路:有序+查找元素,第一想到的就是二分法,所以我对每行采用二分法,每行的复杂度为O(m),那么总的复杂度就是O(nlogm):看题解从右上角开始,这个数比目标值大,就往左移一列,比目标值小,就往下移 ...

  4. Leetcode每日一题:167.two-sum-ii-input-array-is-sorted(两数之和Ⅱ-输入有序数组)

    解题思路:双指针 l 和 r,分别指向头和尾,对于这个有序数组,如果number[l] + number[r] 比 target大,那么说明选择的r对应元素偏大,将指针 r 左移:如果小于target ...

  5. Leetcode每日一题:88.merge-sorted-array(合并两个有序数组)

    思路:最容易想到的就是归并排序的归并策略了,时间复杂度O(m+n),空间复杂度O(n);但是官网给出了另一个难以想到的妙招,就是反向归并,因为nums1最后面的n个元素是空的,所以从后端开始归并,每次 ...

  6. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  7. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  8. LeetCode 852. Peak Index in a Mountain Array

    LeetCode 852. Peak Index in a Mountain Array Solution1:我的答案 时间复杂度O(n)O(n)O(n) class Solution { publi ...

  9. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

  10. leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

    leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...

最新文章

  1. python爬虫意思_python为什么叫爬虫
  2. C++实现顺序查找(附完整源码)
  3. Django框架实现支付宝第三方支付
  4. Quartus16.0如何使用TCL脚本
  5. PHP 电子商城基本数据表
  6. java怎么安装_Java怎么安装?Java运行环境安装教程
  7. c++ 十进制、十六进制和BCD的相互转换
  8. 理解vue中的父组件,子组件
  9. linux debug tools
  10. IDEA中单元测试使用Scanner控制台无法输入
  11. Hadoop之crontab与ntpd
  12. wifi服务器无响应如何修复,wifi打不开怎么修复?wifi打不开原因是什么
  13. 线性代数知识点总结,基础概念和计算整理(手写版)
  14. DCDC中自举电容的原理小结(一)
  15. 判断两个单词是否互为变位词,如“book”,“koob”,代码如下
  16. 如何测试复制粘贴功能
  17. 在Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
  18. 【风马一族_xml】xml语法
  19. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day34】—— 消息队列2
  20. 【Mac 系列】Mac安装Mysql

热门文章

  1. ”0元中标的商业逻辑“ -- 如何更好防范项目风险(北京软件造价评估技术创新联盟:李培圣)...
  2. form表单无刷新提交文件(iframe)
  3. Vs2015智能提示英文?
  4. mysql基础之存储引擎
  5. 如何测试sql语句性能,提高执行效率
  6. Nginx+Lua 积累
  7. 数据库之ODPS中sql语句指南
  8. 如何高效学习Oracle
  9. (项目)生鲜超市(六)
  10. 查询数据库中所有表名称