Leetcode每日一题:941.valid-mountain-array(有效的山脉数组)
思路:先遍历一遍数组,找到最大值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(有效的山脉数组)相关推荐
- 941. Valid Mountain Array 有效的山脉数组
给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false. 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在 0 < ...
- Leetcode每日一题:992.sort-array-by-parity-ii(按奇偶排序数组Ⅱ)
思路: 法1:建立一个与原数组同大小的数组res,两次遍历A,偶数放入res的偶下标,奇数放入奇下标: 法2:双指针: 法3:双端队列,遍历A,计数插入前端,偶数插入尾端,然后双指针(1首1尾)对队列 ...
- Leetcode每日一题:剑指 Offer 04.(二维数组中的查找)
思路:有序+查找元素,第一想到的就是二分法,所以我对每行采用二分法,每行的复杂度为O(m),那么总的复杂度就是O(nlogm):看题解从右上角开始,这个数比目标值大,就往左移一列,比目标值小,就往下移 ...
- Leetcode每日一题:167.two-sum-ii-input-array-is-sorted(两数之和Ⅱ-输入有序数组)
解题思路:双指针 l 和 r,分别指向头和尾,对于这个有序数组,如果number[l] + number[r] 比 target大,那么说明选择的r对应元素偏大,将指针 r 左移:如果小于target ...
- Leetcode每日一题:88.merge-sorted-array(合并两个有序数组)
思路:最容易想到的就是归并排序的归并策略了,时间复杂度O(m+n),空间复杂度O(n);但是官网给出了另一个难以想到的妙招,就是反向归并,因为nums1最后面的n个元素是空的,所以从后端开始归并,每次 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 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 ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
最新文章
- python爬虫意思_python为什么叫爬虫
- C++实现顺序查找(附完整源码)
- Django框架实现支付宝第三方支付
- Quartus16.0如何使用TCL脚本
- PHP 电子商城基本数据表
- java怎么安装_Java怎么安装?Java运行环境安装教程
- c++ 十进制、十六进制和BCD的相互转换
- 理解vue中的父组件,子组件
- linux debug tools
- IDEA中单元测试使用Scanner控制台无法输入
- Hadoop之crontab与ntpd
- wifi服务器无响应如何修复,wifi打不开怎么修复?wifi打不开原因是什么
- 线性代数知识点总结,基础概念和计算整理(手写版)
- DCDC中自举电容的原理小结(一)
- 判断两个单词是否互为变位词,如“book”,“koob”,代码如下
- 如何测试复制粘贴功能
- 在Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)
- 【风马一族_xml】xml语法
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day34】—— 消息队列2
- 【Mac 系列】Mac安装Mysql