我的力扣算法845-数组中的最长山脉
哈哈,真的放了一天假。
好了,废话不多说,我们先开始今天的力扣每日一题:
虽然说这次的算法是中等难度,但是相信通过时间和不断的尝试,各位都可以完成出来,这里介绍一种取巧的方式进行问题的解决。
既然是找山的长度,我们先知道什么是山,其实就是一段数字中,这段开头,呈上升趋势,段末呈下降趋势,这就是一座山,那么我们进行一次遍历,找到一个山脚,也就是存在一个数字,它前面的比它大,后面也比它大,那么它就是山脚。然后找到两个山脚的距离,这就是山的长度,然后找最大的,就是最长山脉了。
这里提供评论区大佬的一种取巧的方式。
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-数组中的最长山脉相关推荐
- 845. 数组中的最长山脉
链接:845. 数组中的最长山脉 题解: class Solution {public:int longestMountain(vector<int>& nums) {if(num ...
- LeetCode 845. 数组中的最长山脉
https://leetcode-cn.com/problems/longest-mountain-in-array/ 难度:中等 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 &qu ...
- LeetCode 845. 数组中的最长山脉(中心扩展)
1. 题目 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 ...
- 16. Leetcode 845. 数组中的最长山脉 (数组-同向双指针-快慢指针)
把符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 arr[0] < arr[1 ...
- 0数组中等 LeetCode845. 数组中的最长山脉
845. 数组中的最长山脉 描述 把符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在下标 i(0 < i < arr.length - 1),满足 ...
- 力扣练习题(数组中数据反转)
力扣练习题(数组中数据反转) 要求:int[] arr = {12,23,34,45,56,67,78,89,90}; 变为:int[] arr = {90,89,78,67,56,45,34,23, ...
- 力扣 数组中的最长山脉
力扣 数组中的最长山脉 题目描述 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.le ...
- LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉
描述: 我们把数组 A 中符合下列属性的任意连续子数组 B 称为 "山脉": B.length >= 3 存在 0 < i < B.length - 1 使得 B ...
- 力扣——在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目标值 target,返 ...
最新文章
- 实验四 定位与导航算法
- Python使用matplotlib可视化多个时间序列数据、添加双Y轴、以显示具有不同尺度的时间序列数据(secondary y axis)
- [学习笔记]Segment Tree Beats!九老师线段树
- jointGrid,边际的颜色和hue保持一致,添加title
- 突然明白了如何看待细枝末节
- 静态static关键字概述
- PHP防QQ列表右划,react native 实现类似QQ的侧滑列表效果
- Rails 3:提高Ajax应用速度
- spring bean的创建,生命周期
- s1 java 复习 视频小课
- Calendar的api方法
- SpringBoot项目集成Mybatis Plus(四)SQL映射文件
- sqli注入前置知识
- 7 win 卸载node_如何从windows中完全删除node.js_windows彻底卸载node教程
- 校招真题练习009 配比(京东)
- zookeeper集群
- 23种经典设计模式的java实现_5_职责链模式
- 2.3 Hightway Networks
- 【只推荐一位】推荐一位资深Python爱好者,现任世界500强架构师
- studio和solo哪个好_beats studio3 和solo3的区别再哪里?