当前位置: 首页 > news >正文

Leetcode:找出峰值

普通版本

题目链接:2951. 找出峰值 - 力扣(LeetCode)   

class Solution {
public:vector<int> findPeaks(vector<int>& mountain) {int sz = mountain.size();vector<int> newMountain;for(int i = 1;i < sz-1;i++){int a = mountain[i-1];int b = mountain[i];int c = mountain[i+1];if(b > a && b > c){newMountain.push_back(i);} }return newMountain;}
};

注意vector的push_back、insert和[ ]三者对于自身元素处理的不同情况:

  • push_back:用于向数组尾部插入新元素
  • insert:用于向数组中得某个位置进行插入,需要传入要插入位置得迭代器
  • [ ]:只能访问和修改已有元素,不能用于插入元素

优化版本

class Solution {
public:vector<int> findPeaks(vector<int> &mountain) {vector<int> res;int i = 1;while(i+1 < mountain.size()){if (mountain[i - 1] < mountain[i] && mountain[i] > mountain[i + 1]) {res.push_back(i);i+=2;continue;}i++;}return res;}
};
  • 省去了用变量存储数组中的值
  • 当i位置为峰值时,i+1位置就不可能是峰值,可以直接跳过

~over~

http://www.lryc.cn/news/355712.html

相关文章:

  • 简单微信企业群消息推送接口
  • 超好用!图像去雾算法C2PNet介绍与使用指南
  • java中使用mysql的json字段(代码示例)
  • GitHub的原理及应用详解(三)
  • Flutter 中的 Offstage 小部件:全面指南
  • 微信小程序中使用vantUI步骤
  • 说一下 ACID 是什么?
  • 深度解读 chatgpt基本原理
  • Oracle-修改用户名
  • 张量 t-product 积(matlab代码)
  • 爬山算法教程(个人总结版)
  • 水电表远程抄表:智能化时代的能源管理新方式
  • 物联网应用开发--STM32与机智云通信(ESP8266 Wi-Fi+手机APP+LED+蜂鸣器+SHT20温湿度传感器)
  • 【高阶数据结构(七)】B+树, 索引原理讲解
  • ML307R OpenCPU 网络初始化流程介绍
  • 分享:怎么才能保证大数据查询的准确性?
  • AI Agent教育行业落地案例
  • Flutter 中的 LimitedBox 小部件:全面指南
  • OrangePi AIpro初体验,码农的第一台个人AI云电脑
  • 剪画小程序:”霸屏各大平台“的黏土滤镜是怎么制作的呢?
  • 图解 BERT 模型
  • 关于软件设计模式的理解
  • Java开发官方文档
  • AI大模型探索之路-实战篇9:探究Agent智能数据分析平台的架构与功能
  • 本地spark3.5(不整合hive) 集成paimon0.9
  • Linux IO模型深度解析与实战应用
  • 软件系统开发标准流程文档(Word原件)
  • 嵌入式进阶——外部中断(EXTI)
  • flinkcdc 3.0 源码学习之客户端flink-cdc-cli模块
  • 香橙派 AIpro开发体验:使用YOLOV8对USB摄像头画面进行目标检测