当前位置: 首页 > 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~

相关文章:

  • 永久代(Permanent Generation)和元空间(Metaspace)
  • MySQL的安全性
  • 前端 CSS 经典:filter 滤镜
  • 学生管理系统 面向对象
  • 微火问答:全域外卖和本地生活服务是同个项目吗?
  • SQL刷题笔记day6-1
  • php TP8 阿里云短信服务SDKV 2.0(跳大坑)
  • MySQL(一) 库和表的基础操作
  • Go语言数据库框架 — Gorm
  • 关于 CSS 的那些事儿,我竟然都不知道
  • [Leetcode LCR 106.判断二分图]
  • redis数据类型之Hash,Bitmaps
  • R语言入门 | 使用 dplyr 进行数据转换
  • redis 集群 底层原理以及实操
  • C++修改文件后缀名;链表循环删除乘积为10的元素
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular 响应式表单之下拉框
  • CAP理论的例子讲解
  • CSS 三角实现
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES学习笔记(12)--Symbol
  • FineReport中如何实现自动滚屏效果
  • git 常用命令
  • Github访问慢解决办法
  • JavaScript 一些 DOM 的知识点
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Just for fun——迅速写完快速排序
  • Nodejs和JavaWeb协助开发
  • orm2 中文文档 3.1 模型属性
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Redash本地开发环境搭建
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Webpack 4 学习01(基础配置)
  • 如何实现 font-size 的响应式
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 项目实战-Api的解决方案
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 整理一些计算机基础知识!
  • ​字​节​一​面​
  • #pragma once
  • ()、[]、{}、(())、[[]]命令替换
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (搬运以学习)flask 上下文的实现
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)ORM
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转载)Linux网络编程入门
  • .dwp和.webpart的区别
  • .JPG图片,各种压缩率下的文件尺寸