哈哈,真的放了一天假。
好了,废话不多说,我们先开始今天的力扣每日一题:

虽然说这次的算法是中等难度,但是相信通过时间和不断的尝试,各位都可以完成出来,这里介绍一种取巧的方式进行问题的解决。
既然是找山的长度,我们先知道什么是山,其实就是一段数字中,这段开头,呈上升趋势,段末呈下降趋势,这就是一座山,那么我们进行一次遍历,找到一个山脚,也就是存在一个数字,它前面的比它大,后面也比它大,那么它就是山脚。然后找到两个山脚的距离,这就是山的长度,然后找最大的,就是最长山脉了。
这里提供评论区大佬的一种取巧的方式。

class Solution {public:int longestMountain(vector<int>& A) {if(A.empty()) return 0;A.insert(A.begin(), A.front());A.push_back(A.back());//这里的两步,从头插入,再从数组尾部插入,其实就是//为了防止01234543210这种情况,后一个山脚找不到//下一个比它大的值,前一个也找不到前一个比它小的值int len = A.size(), pos = len;int res=0;for(int i=1; i<len-1; ++i){//这里的逻辑判断,就是找山脚,和排除山的高度一样高,//这样的数组没有山脚,无法判断它是不是山。if(A[i-1]>=A[i] && A[i]<=A[i+1] && A[i-1]+A[i+1]!=2*A[i]) res = max(res, i - pos + 1), pos = i;if(A[i]==A[i+1]) pos = len;}return res;}
};

好了,就这样了,一种取巧的方式,但是思路很好,值得我们学习。

我的力扣算法845-数组中的最长山脉相关推荐

  1. 845. 数组中的最长山脉

    链接:845. 数组中的最长山脉 题解: class Solution {public:int longestMountain(vector<int>& nums) {if(num ...

  2. LeetCode 845. 数组中的最长山脉

    https://leetcode-cn.com/problems/longest-mountain-in-array/ 难度:中等   我们把数组 A 中符合下列属性的任意连续子数组 B 称为 &qu ...

  3. LeetCode 845. 数组中的最长山脉(中心扩展)

    1. 题目 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 ...

  4. 16. Leetcode 845. 数组中的最长山脉 (数组-同向双指针-快慢指针)

    把符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 arr[0] < arr[1 ...

  5. 0数组中等 LeetCode845. 数组中的最长山脉

    845. 数组中的最长山脉 描述 把符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 ...

  6. 力扣练习题(数组中数据反转)

    力扣练习题(数组中数据反转) 要求:int[] arr = {12,23,34,45,56,67,78,89,90}; 变为:int[] arr = {90,89,78,67,56,45,34,23, ...

  7. 力扣 数组中的最长山脉

    力扣 数组中的最长山脉 题目描述 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.le ...

  8. LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉

    描述: 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B ...

  9. 力扣——在排序数组中查找元素的第一个和最后一个位置

    在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目标值 target,返 ...

最新文章

  1. 实验四 定位与导航算法
  2. Python使用matplotlib可视化多个时间序列数据、添加双Y轴、以显示具有不同尺度的时间序列数据(secondary y axis)
  3. [学习笔记]Segment Tree Beats!九老师线段树
  4. jointGrid,边际的颜色和hue保持一致,添加title
  5. 突然明白了如何看待细枝末节
  6. 静态static关键字概述
  7. PHP防QQ列表右划,react native 实现类似QQ的侧滑列表效果
  8. Rails 3:提高Ajax应用速度
  9. spring bean的创建,生命周期
  10. s1 java 复习 视频小课
  11. Calendar的api方法
  12. SpringBoot项目集成Mybatis Plus(四)SQL映射文件
  13. sqli注入前置知识
  14. 7 win 卸载node_如何从windows中完全删除node.js_windows彻底卸载node教程
  15. 校招真题练习009 配比(京东)
  16. zookeeper集群
  17. 23种经典设计模式的java实现_5_职责链模式
  18. 2.3 Hightway Networks
  19. 【只推荐一位】推荐一位资深Python爱好者,现任世界500强架构师
  20. studio和solo哪个好_beats studio3 和solo3的区别再哪里?

热门文章

  1. java中的transient关键字详解
  2. win11抢先流出版体验镜像
  3. 浅谈应届生的职业规划
  4. 基于spark的朴素贝叶斯分类器
  5. linux内核协议栈 netfilter 之连接跟踪子系统的L3 L4协议栈模块初始化与自定义注册
  6. python翻译translators
  7. 光子的双缝干涉实验:只有单个光子才能产生所谓的干涉现象
  8. tkMyBatis 检索时返回指定列
  9. RHEL AS4u2下安装oracle 9i rac
  10. 关于Data Lake的概念、架构与应用场景介绍