2951. 找出峰值

找出数组中的峰值

给你一个下标从 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

代码

int* findPeaks(int* mountain, int mountainSize, int* returnSize) {int* res = (int*)malloc(sizeof(int) * (mountainSize - 2));*returnSize = 0;for (int i = 1; i < mountainSize - 1; i++){if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1]){res[(*returnSize)] = i;(*returnSize)++;}}return res;
}

代码分析

  1. 函数参数

    • int* mountain: 指向表示山脉的数组的指针。
    • int mountainSize: 数组的大小。
    • int* returnSize: 返回结果数组的大小。
  2. 变量初始化

    • int* res = (int*)malloc(sizeof(int) * (mountainSize - 2)): 为存储峰值下标的结果数组分配内存。结果数组的大小不会超过 mountainSize - 2
    • *returnSize = 0: 初始化返回结果数组的大小为 0。
  3. 遍历数组

    • for (int i = 1; i < mountainSize - 1; i++): 从数组的第二个元素遍历到倒数第二个元素。
  4. 检查峰值条件

    • if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1]): 如果当前元素严格大于其相邻元素,则将其下标存入结果数组,并增加返回结果数组的大小。
  5. 返回结果

    • return res: 返回存储峰值下标的结果数组。

复杂度分析

  • 时间复杂度:O(n)

    • 该算法仅需遍历一次数组,因此时间复杂度为 O(n),其中 n 是数组 mountain 的长度。
  • 空间复杂度:O(n)

    • 该算法使用了一个额外的数组来存储峰值下标,因此空间复杂度为 O(n),其中 n 是数组 mountain 的长度。

结果

结果

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

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

相关文章

Nginx的Sub模块

Nginx 是一款高性能的 Web 服务器和反向代理服务器,其灵活的模块化设计使其成为许多开发者和运维人员的首选。其中,Sub 模块作为 Nginx 的一部分,提供了强大的字符串替换和正则匹配功能,本文将深入探讨 Sub 模块的用途、示例以及使用中需要注意的事项。 1. Sub 模块的用途…

汽车合面合壳密封UV胶固化后一般可以耐多少度的高温和低温? 汽车车灯的灯罩如果破损破裂破洞了要怎么修复?

汽车合面合壳密封UV胶固化后一般可以耐多少度的高温和低温? UV胶固化后的耐高温和低温能力取决于具体的UV胶水品牌和型号&#xff0c;以及固化过程中的条件。一般来说&#xff0c;高品质的UV胶水在固化后可以提供较好的耐温性能&#xff0c;但确切的耐温范围需要参考各个厂家提…

Mac 安装 PostgreSQL简易教程

Mac 安装 PostgreSQL简易教程 下载安装包 下载安装包 下载地址 我下载的文件&#xff1a;Postgres-2.7.3-16.dmg 双击 dmg 文件安装 拖拽图标到右边的文件&#xff0c;然后到应用程序中找到 Postgres.app 双击打开。 然后点击 Initialize 按钮 配置$PATH 到命令下工具&#…

C++中的类型转化的定义与使用

文章目录 前言一、C中类型转化的使用与细节二、C语言与C中类型转化的对比总结 前言 在C中&#xff0c;类型转换指的是将一个数据类型的值转换为另一种数据类型的值的操作。C提供了几种类型转换操作符&#xff0c;包括静态转换、动态转换和重解释转换。下面是关于C中类型转换的…

ITSS运维资质认证的含金量

什么是ITSS运维资质认证 ITSS运维资质认证是指经过机构评估和审核&#xff0c;对从事IT运维工作的人员进行能力认证和身份确认的过程。认证通过的个人或机构&#xff0c;被视为具备一定的技术水平和专业素养&#xff0c;能够在IT运维领域提供高质量的服务。ITSS运维资质认证是评…

虚拟化技术 分布式资源调度

一、实验内容 实现分布式资源调度 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑&#xff0c;建议4C8G或以上配置已安装VMware Workstation Pro已安装Windows Server 2008 R2 x64已安装vCenter Server 三、实验步骤 将主机esxi1和esxi2加入…

深圳比创达EMC|EMI电磁干扰行业:行业发展的关键与挑战

在当今的高科技时代&#xff0c;电子产品无处不在&#xff0c;它们为我们的生活带来了极大的便利。然而&#xff0c;随着电子设备的普及和集成度的提高&#xff0c;电磁干扰&#xff08;EMI&#xff09;问题也日益凸显。 一、EMI电磁干扰行业&#xff1a;无处不在的挑战 电磁…

Java语言的ACM输入输出模版

1.多行输入&#xff0c;每次输入两个整数 import java.lang.*; import java.util.*; public class Main{public static void main(String[] args){Scanner in new Scanner(System.in);while(in.hasNextInt()){int a in.nextInt();int b in.nextInt();System.out.println(ab…

VS2002 ~ VS2022平台工具集对应关系

Visual Studio 版本C++编译器版本_MSC_VER 宏工具集版本Visual Studio 6.06.01200v60Visual Studio .NET 2002 (7.0) 7.01300v70Visual Studio .NET 2003 (7.1)7.11310v71Visual Studio 2005 (8.0)

特殊成员函数实践

文章目录 1.构造函数一般方式2.初始化列表方式&#xff0c;构造函数3.委托构造函数4.析构函数5.浅拷贝6.深拷贝7.移动构造 1.构造函数一般方式 2.初始化列表方式&#xff0c;构造函数 3.委托构造函数 4.析构函数 5.浅拷贝 6.深拷贝 7.移动构造 #include <iostream>…

go语言方法之方法声明

从我们的理解来讲&#xff0c;一个对象其实也就是一个简单的赋值或者一个变量&#xff0c;在这个对象中会包含一些方法&#xff0c;而一个方法则是一个一个和特殊类型关联的函数。一个面向对象的程序会用方法来表达其属性和对应的操作&#xff0c;这样使用这个对象的用户就不需…

centos6下面用yum安装php7.3

首先安装remi.repo 仓库 参考: centos yum方式安装PHP74 centos yum方式安装PHP74_yum 安装php74-CSDN博客 yum安装 yum install php73-php-pecl-zip bz2 curl event gd json openssl mysqlnd PDO yum install php-posix php73 composer.phar config -g repo.packagist co…

AI大模型在测试中的深度应用与实践案例

文章目录 1. 示例项目背景2. 环境准备3. 代码实现3.1. 自动生成测试用例3.2. 自动化测试脚本3.3. 性能测试3.4. 结果分析 4. 进一步深入4.1. 集成CI/CD管道4.1.1 Jenkins示例 4.2. 详细的负载测试和性能监控4.2.1 Locust示例 4.3. 测试结果分析与报告 5. 进一步集成和优化5.1. …

IND-ID-CPA 和 IND-ANON-ID-CPA Game

Src: https://eprint.iacr.org/2017/967.pdf

算法训练 | 二叉树Part5 | 513.找树左下角的值、112.路径总和、106.从中序与后序遍历序列构造二叉树

目录 513.找树左下角的值 递归法 迭代法 ⭐ 112.路径总和 递归法 迭代法 106.从中序与后序遍历序列构造二叉树 递归法 513.找树左下角的值 题目链接&#xff1a;513. 找树左下角的值 - 力扣&#xff08;LeetCode&#xff09; 文章讲解&#xff1a;programmercarl.com…

超声波清洗机哪些品牌好用点?四大极其出色的机型一目了然

各位眼镜侠们&#xff0c;在佩戴眼镜的是&#xff0c;有没有觉得眼镜总是有些难以言喻的“味道”或者是污渍在镜片上面。是的&#xff0c;没有猜错&#xff0c;那是我们脸上油脂、汗液和各种不明物质的混合体。特别是在夏天的时候天气太炎热会经常出汗&#xff0c;眼镜上会沾染…

2021职称继续教育--加快构建完整内需体系,形成国内国际双循环相互促进新格局

单选题&#xff08;共7题&#xff0c;每题5分&#xff09; 1、根据本讲&#xff0c;突破和推进“一带一路”战略&#xff0c;要满足以企业为主体、以&#xff08;&#xff09;为导向的基本要求。 D、市场 2、根据本讲&#xff0c;让农村消费市场持续扩张的前提&#xff08;&am…

shell将文件分割成小块文件

背景&#xff1a;某软件最多支持1G的文件传输&#xff0c;需要对大文件进行切割。 方案1&#xff1a; 可以使用split命令将文件均分成10分片。以下是具体的命令示例&#xff1a; split -b $(($(du -b < 文件名) / 10)) 文件名 分片前缀 这里文件名是你想要分割的文件的名…

网络架构三层到大二层的对比和选择

在企业的网络结构选择中&#xff0c;有二层网络和三层网络结构两种选择。三层是按照逻辑拓扑结构进行的分类&#xff0c;汇聚层和接入层&#xff0c;流量纵向经过接入层、汇聚层网络&#xff0c;收敛至骨干核心层。二层网络结构没有汇聚层。大二层网络架构通常使用VLAN&#xf…