【教3妹学编程-算法题】找出峰值

伤心

3妹:2哥2哥,你有没有看到新闻:北京地铁事故中102人骨折!
2哥 : 看到了,没想到坐个地铁还出事故了。
3妹:事故原因为雪天轨滑导致前车信号降级,紧急制动停车,后车因所在区段位于下坡地段,雪天导致列车滑行,未能有效制动,造成与前车追尾。
2哥 : 又是该死的自然灾害,记得几年前郑州地铁就是暴雨出过一次事故。
3妹:是啊,下雪也容易出事故,要格外 注意安全,她在这次无人员死亡,不幸中的万幸了。
2哥 : 恩,找出了原因最重要,也要找出道路上存在的安全隐患,防患于未然。
3妹:是的, 就像我的工作中,也要在上线前就找出代码中的bug. 否则也容易出事故!
2哥 : 哈哈,3妹还会举一反三啦。那我来考一道关于找出峰值的题目吧~

考考你

题目:

给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值。

以数组形式返回给定数组中 峰值 的下标,顺序不限 。

注意:

峰值 是指一个严格大于其相邻元素的元素。
数组的第一个和最后一个元素 不 是峰值。

示例 1:

输入:mountain = [2,4,4]
输出:[]
解释:mountain[0] 和 mountain[2] 不可能是峰值,因为它们是数组的第一个和最后一个元素。
mountain[1] 也不可能是峰值,因为它不严格大于 mountain[2] 。
因此,答案为 [] 。
示例 2:

输入:mountain = [1,4,3,8,5]
输出:[1,3]
解释:mountain[0] 和 mountain[4] 不可能是峰值,因为它们是数组的第一个和最后一个元素。
mountain[2] 也不可能是峰值,因为它不严格大于 mountain[3] 和 mountain[1] 。
但是 mountain[1] 和 mountain[3] 严格大于它们的相邻元素。
因此,答案是 [1,3] 。

提示:

3 <= mountain.length <= 100
1 <= mountain[i] <= 100

思路:

思考
遍历,
遍历下标在 [1,n−2]内的所有数,如果其大于其左右两侧相邻数字,则把 i 加入答案。

java代码:

class Solution {public List<Integer> findPeaks(int[] mountain) {List<Integer> ans = new ArrayList<>();for (int i = 1; i < mountain.length - 1; i++) {if (mountain[i] > mountain[i - 1] && mountain[i] > mountain[i + 1]) {ans.add(i);}}return ans;}
}

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

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

相关文章

二维数组——特征匹配(c++)

右上左下遍历 给定一个n行m列的整数数组a&#xff0c;要求从a[0][0] 元素开始&#xff0c;按从右上到左下的对角线顺序遍历整个数组。 输出 按遍历顺序输出每个整数。每个整数占一行。 样例输入 3 3 1 2 4 3 5 7 6 8 9 样例输出 1 2 4 3 5 7 6 8 9 #include <iostream&g…

【️Java是值传递还是引用传递?】

✅Java是值传递还是引用传递&#xff1f; ✅Java是值传递还是引用传递&#xff1f;✅典型理解 ✅增加知识仓✅Java的求值策略✅Java中的对象传递✅值传递和共享对象传递的现象冲突吗? ✅总结 ✅Java是值传递还是引用传递&#xff1f; ✅典型理解 编程语言中需要进行方法间的…

一句话分清C/C++声明和定义

定义告诉编译器在在哪个位置存储变量&#xff0c;声明没有 声明&#xff1a;告诉编译器&#xff0c;变量类型和名字 定义&#xff1a;告诉编译器变量存储的位置。 举例子 int i; // 这是声明定义。声明&#xff1a;告诉编译器变量类型int,变量名字i&#xff0c; // 定义&…

kafka学习笔记--Kafka副本

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

比特币即自由

号外&#xff1a;教链内参12.15《疯狂的铭文》 文 | Ross Ulbricht. 原文标题&#xff1a;Bitcoin Equals Freedom. 2019.9.25 在中本聪发明比特币后的头一年左右&#xff0c;发生了一些特别的事情&#xff0c;不仅没有人预料到&#xff0c;甚至很多人认为不可能。试着想象一下…

昇腾Profiling性能分析工具使用问题案例

昇腾Profiling性能分析工具用于采集和分析运行在昇腾硬件上的AI任务各个运行阶段的关键性能指标, 用户可根据输出的性能数据&#xff0c;快速定位软、硬件性能瓶颈&#xff0c;提升AI任务性能分析的效率。具体使用方法请参考&#xff1a; 本期分享几个关于Profiling性能分析工具…

C语言 打印 以这个RFC1123格式(“EEE, dd MMM yyyy HH:mm:ss z“) 格林威治时间

在C语言中&#xff0c;要按照RFC 1123格式打印格林威治时间&#xff08;包括完整的星期名称、日期、月份、年份、小时、分钟和秒&#xff09;&#xff0c;你需要使用strftime函数&#xff0c;并且指定相应的格式化字符串。以下是一个示例代码&#xff1a;#include <stdio.h&…

【CMU 15-445】Lecture 11: Joins Algorithms 学习笔记

Joins Algorithms Nested Loop JoinNaive Nested Loop JoinBLock Nested Loop JoinIndex Nested Loop Join Sort-Merge JoinHash JoinBasic Hash JoinPartitioned Hash Join Conclusion 本节课主要介绍的是数据库系统中的一些Join算法 Nested Loop Join Naive Nested Loop Joi…

高压脉冲发生器的各种电路图

高压脉冲发生器电路图一&#xff1a; 高压脉冲发生器的主放电回路的等效电路。其中&#xff0c;S是可控开关&#xff0c;C1是电容器组电容&#xff0c;R1是高压变压器输入端的损耗电阻&#xff0c;L1&#xff0c;L2分别是高压变压器初次级电感&#xff0c;K为耦合系数&#xff…

一篇文章看懂mysql加锁

一篇文章看懂Mysql加锁 本文主要基于Mysql8,InnoDB存储引擎范围讨论mysql的加锁&#xff0c;以及锁的分类&#xff0c;定义&#xff0c;使用&#xff0c;不同语句具体加的什么锁等。 前言 mysql锁是和事务绑定的。本文介绍了了&#xff1a;全局锁、表锁、行锁、MDL锁、Auto_in…

架构设计系列之基础设施能力建设

周末聊两句&#xff1a; 今天将的基础设施能力建设部分&#xff0c;一般的架构书籍中都不存在的部分&#xff0c;这是我在实践过程中的经验和能力总结部分&#xff0c;希望和大家有一个很好的交流自从在 WeChat 中开了订阅号的两周半的时间&#xff0c;非常感谢大家的支持&…

replace()是一个字符串替换的函数,用于将指定的字符串或模式在目标字符串中进行替换

replace()是一个字符串替换的函数&#xff0c;用于将指定的字符串或模式在目标字符串中进行替换。 函数原型如下&#xff1a; QString replace(const QString &before, const QString &after)参数说明&#xff1a; before&#xff1a;要替换的字符串或模式。after&a…

K - 近邻算法

1、算法介绍 KNN&#xff08;K Near Neighbor&#xff09;&#xff1a;k个最近的邻居&#xff0c;即每个样本都可以用它最接近的k个邻居来代表。KNN算法属于监督学习方式的分类算法&#xff0c;我的理解就是计算某给点到每个点的距离作为相似度的反馈。 简单来讲&#xff0c;KN…

nginx中的root and alias命令的区别

Ubuntu关于Nginx的命令&#xff1a; 1、安装Nginx&#xff1a; apt-get install nginx2、查看Nginx运行状态&#xff1a; systemctl status nginx3、启动Nginx&#xff1a; systemctl start nginx4、停止Nginx&#xff1a; systemctl stop nginx5、重启Nginx&#xff1a; …

代码随想录算法训练营第十八天 | 前中后序构造二叉树

目录 力扣题目 力扣题目记录 513.找树左下角的值 递归 迭代法 总结 112. 路径总和 106.从中序与后序遍历序列构造二叉树 总结 力扣题目 用时&#xff1a;2h 1、513.找树左下角的值 2、112. 路径总和 3、106.从中序与后序遍历序列构造二叉树 力扣题目记录 513.找树…

持续集成交付CICD:基于 GitLabCI 与 JenkinsCD 实现后端项目发布

目录 一、实验 1. GitLabCI环境设置 2.优化GitLabCI共享库代码 3.JenkinsCD 发布后端项目 4.再次优化GitLabCI共享库代码 5.JenkinsCD 再次发布后端项目 一、实验 1. GitLabCI环境设置 &#xff08;1&#xff09;GitLab给后端项目添加CI配置路径 &#xff08;2&#xf…

算法通关村第十二关—字符串冲刺题(黄金)

字符串冲刺题 一、最长公共前缀 LeetCode14 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀&#xff0c;返回空字符串"" 示例1&#xff1a; 输入&#xff1a;strs["flower","fLow","flight"] 输出&#xff1a;&…

机器学习算法---时间序列

类别内容导航机器学习机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归机器学习算法—聚类机器学习算法—异常检测机器学习算法—时间序列数据可视化数据可视化—折线图数据可视化—箱线图数据可视化—柱状图数据可视化—饼图、环形图、雷达图统计学检验箱…

【力扣100】21.合并两个有序链表

添加链接描述 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -&…

SVPWM马鞍波形仿真(python)

SVPWM波的原理不再过多介绍。 最近在学习SVPWM&#xff0c;仿真了一下马鞍波。 python源码贡献出来。 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as anim############################################# # 我们的目的是根据机械角度&…