2058. 找出临界点之间的最小和最大距离

2058. 找出临界点之间的最小和最大距离

链表中的 临界点 定义为一个 局部极大值点 或 局部极小值点 。

如果当前节点的值 严格大于 前一个节点和后一个节点,那么这个节点就是一个 局部极大值点 。

如果当前节点的值 严格小于 前一个节点和后一个节点,那么这个节点就是一个 局部极小值点 。

注意:节点只有在同时存在前一个节点和后一个节点的情况下,才能成为一个 局部极大值点 / 极小值点 。

给你一个链表 head ,返回一个长度为 2 的数组 [minDistance, maxDistance] ,其中 minDistance 是任意两个不同临界点之间的最小距离,maxDistance 是任意两个不同临界点之间的最大距离。如果临界点少于两个,则返回 [-1,-1] 。

  • 示例 1:

图片.png

输入:head = [3,1]
输出:[-1,-1]
解释:链表 [3,1] 中不存在临界点。

  • 示例 2:

图片.png

输入:head = [5,3,1,2,5,1,2]
输出:[1,3]
解释:存在三个临界点:

  • [5,3,1,2,5,1,2]:第三个节点是一个局部极小值点,因为 1 比 3 和 2 小。
  • [5,3,1,2,5,1,2]:第五个节点是一个局部极大值点,因为 5 比 2 和 1 大。
  • [5,3,1,2,5,1,2]:第六个节点是一个局部极小值点,因为 1 比 5 和 2 小。
    第五个节点和第六个节点之间距离最小。minDistance = 6 - 5 = 1 。
    第三个节点和第六个节点之间距离最大。maxDistance = 6 - 3 = 3 。
  • 示例 3:

图片.png

输入:head = [1,3,2,2,3,2,2,2,7]
输出:[3,3]
解释:存在两个临界点:

  • [1,3,2,2,3,2,2,2,7]:第二个节点是一个局部极大值点,因为 3 比 1 和 2 大。
  • [1,3,2,2,3,2,2,2,7]:第五个节点是一个局部极大值点,因为 3 比 2 和 2 大。
    最小和最大距离都存在于第二个节点和第五个节点之间。
    因此,minDistance 和 maxDistance 是 5 - 2 = 3 。
    注意,最后一个节点不算一个局部极大值点,因为它之后就没有节点了。
  • 示例 4:

图片.png

输入:head = [2,3,3,2]
输出:[-1,-1]
解释:链表 [2,3,3,2] 中不存在临界点。

提示:

  • 链表中节点的数量在范围 [2, 10510^5105] 内
  • 1 <= Node.val <= 10510^5105

解题思路

维护当前遍历节点的前两个节点的值,加上当前节点,每次我们可以遍历到三个值,因此我们就可以判断第二个节点 是否为局部极大值点 或 局部极小值点了,将每个节点编号,使用数组存储临界点之间的下标,遍历数组是任意两个不同临界点之间的最小距离,两个不同临界点之间的最大距离为数组首尾元素相减的差值

代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:vector<int> nodesBetweenCriticalPoints(ListNode *head) {if (head== nullptr||head->next== nullptr)return vector<int>{-1,-1};int f(head->val),s(head->next->val);ListNode *h=head->next->next;int i(2);vector<int> idx;while (h!= nullptr){if ((s>h->val&&s>f)||(s<h->val&&s<f))idx.push_back(i);f=s;s=h->val;h=h->next;i++;}if (idx.size()<=1)return vector<int>{-1,-1};int m=idx[idx.size()-1]-idx[0];for (int j = 1; j <idx.size() ; ++j) {m=min(idx[j]-idx[j-1],m);}return vector<int>{m,idx[idx.size()-1]-idx[0]};}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tb计算机存储单位_如何节省数TB的云存储

tb计算机存储单位Whatever cloud provider a company may use, costs are always a factor that influences decision-making, and the way software is written. As a consequence, almost any approach that helps save costs is likely worth investigating.无论公司使用哪种…

nginx简单代理配置

原文&#xff1a;https://my.oschina.net/wangnian/blog/791294 前言 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的&#xff0c;第一个公开版本…

2059. 转化数字的最小运算数

2059. 转化数字的最小运算数 给你一个下标从 0 开始的整数数组 nums &#xff0c;该数组由 互不相同 的数字组成。另给你两个整数 start 和 goal 。 整数 x 的值最开始设为 start &#xff0c;你打算执行一些运算使 x 转化为 goal 。你可以对数字 x 重复执行下述运算&#xf…

Django Rest Framework(一)

一、什么是RESTful REST与技术无关&#xff0c;代表一种软件架构风格&#xff0c;REST是Representational State Transfer的简称&#xff0c;中文翻译为“表征状态转移”。 REST从资源的角度审视整个网络&#xff0c;它将分布在网络中某个节点的资源通过URL进行标识&#xff0c…

光落在你脸上,可爱一如往常

沙沙野 https://www.ssyer.com让作品遇见全世界图片来自&#xff1a;沙沙野沙沙野 https://www.ssyer.com让作品遇见全世界图片来自&#xff1a;沙沙野沙沙野 https://www.ssyer.com让作品遇见全世界图片来自&#xff1a;沙沙野沙沙野 https://www.ssyer.com让作品遇见全世界图…

数据可视化机器学习工具在线_为什么您不能跳过学习数据可视化

数据可视化机器学习工具在线重点 (Top highlight)There’s no scarcity of posts online about ‘fancy’ data topics like data modelling and data engineering. But I’ve noticed their cousin, data visualization, barely gets the same amount of attention. Among dat…

2047. 句子中的有效单词数

2047. 句子中的有效单词数 句子仅由小写字母&#xff08;‘a’ 到 ‘z’&#xff09;、数字&#xff08;‘0’ 到 ‘9’&#xff09;、连字符&#xff08;’-’&#xff09;、标点符号&#xff08;’!’、’.’ 和 ‘,’&#xff09;以及空格&#xff08;’ &#xff09;组成。…

fa

转载于:https://www.cnblogs.com/smallpigger/p/9546173.html

python中nlp的库_用于nlp的python中的网站数据清理

python中nlp的库The most important step of any data-driven project is obtaining quality data. Without these preprocessing steps, the results of a project can easily be biased or completely misunderstood. Here, we will focus on cleaning data that is composed…

51Nod 1043 幸运号码

1 #include <stdio.h>2 #include <algorithm>3 using namespace std;4 5 typedef long long ll;6 const int mod 1e9 7;7 int dp[1010][10000];8 // dp[i][j] : i 个数&#xff0c;组成总和为j 的数量9 10 int main() 11 { 12 int n; 13 scanf("%d…

一张图看懂云栖大会·上海峰会重磅产品发布

2018云栖大会上海峰会上&#xff0c;阿里云重磅发布一批产品并宣布了新一轮的价格调整&#xff0c;再次用科技普惠广大开发者和用户&#xff0c;详情见长图。 了解更多产品请戳&#xff1a;https://yunqi.aliyun.com/2018/shanghai/product?spm5176.8142029.759399.2.a7236d3e…

488. 祖玛游戏

488. 祖玛游戏 你正在参与祖玛游戏的一个变种。 在这个祖玛游戏变体中&#xff0c;桌面上有 一排 彩球&#xff0c;每个球的颜色可能是&#xff1a;红色 ‘R’、黄色 ‘Y’、蓝色 ‘B’、绿色 ‘G’ 或白色 ‘W’ 。你的手中也有一些彩球。 你的目标是 清空 桌面上所有的球。…

【黑客免杀攻防】读书笔记14 - 面向对象逆向-虚函数、MFC逆向

虚函数存在是为了克服类型域解决方案的缺陷&#xff0c;以使程序员可以在基类里声明一些能够在各个派生类里重新定义的函数。 1 识别简单的虚函数 代码示例&#xff1a; #include "stdafx.h" #include <Windows.h>class CObj { public:CObj():m_Obj_1(0xAAAAAA…

怎么看另一个电脑端口是否通_谁一个人睡觉另一个看看夫妻的睡眠习惯

怎么看另一个电脑端口是否通In 2014, FiveThirtyEight took a survey of about 1057 respondents to get a look at the (literal) sleeping habits of the American public beyond media portrayal. Some interesting notices: first, that about 45% of all couples sleep to…

495. 提莫攻击

495. 提莫攻击 在《英雄联盟》的世界中&#xff0c;有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希&#xff08;编者注&#xff1a;寒冰射手&#xff09;进入中毒状态。 当提莫攻击艾希&#xff0c;艾希的中毒状态正好持续 duration 秒。 正式地讲&#xff0c;提莫在…

Java基础之Collection和Map

List&#xff1a;实现了collection接口&#xff0c;list可以重复&#xff0c;有顺序 实现方式&#xff1a;3种&#xff0c;分别为&#xff1a;ArrayList&#xff0c;LinkedList&#xff0c;Vector。 三者的比较&#xff1a; ArrayList底层是一个动态数组&#xff0c;数组是使用…

20155320《网络对抗》Exp4 恶意代码分析

20155320《网络对抗》Exp4 恶意代码分析 【系统运行监控】 使用schtasks指令监控系统运行 首先在C盘目录下建立一个netstatlog.bat文件&#xff08;由于是系统盘&#xff0c;所以从别的盘建一个然后拷过去&#xff09;&#xff0c;用来将记录的联网结果格式化输出到netstatlog.…

tableau 自定义省份_在Tableau中使用自定义图像映射

tableau 自定义省份We have been reading about all the ways to make our vizzes in Tableau with more creativity and appeal. During my weekly practice for creating viz as part of makeovermonday2020 community, I came across geographical data which in way requir…

2055. 蜡烛之间的盘子

2055. 蜡烛之间的盘子 给你一个长桌子&#xff0c;桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s &#xff0c;它只包含字符 ‘’ 和 ‘|’ &#xff0c;其中 ’ 表示一个 盘子 &#xff0c;’|’ 表示一支 蜡烛 。 同时给你一个下标从 0 开始的二维整数数组 q…

Template、ItemsPanel、ItemContainerStyle、ItemTemplate

原文:Template、ItemsPanel、ItemContainerStyle、ItemTemplate先来看一张图(网上下的图&#xff0c;加了几个字) 实在是有够“乱”的&#xff0c;慢慢来理一下&#xff1b; 1、Template是指控件的样式 在WPF中所有继承自contentcontrol类的控件都含有此属性&#xff0c;&#…