算法021:山脉数组的峰顶索引

devtools/2024/9/25 8:30:06/

山脉数组的峰顶索引. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/peak-index-in-a-mountain-array/

这个题,看似好像不是递增或者递减数组,但是给定的数组有二段性,也就是说仍然可以用二分查找。

以图中的数组为例,我们需要查找的是10。

那么只需要用二分查找:

  1. arr[mid] > arr[mid - 1] 说明mid在右边的区间,让right = mid - 1
  2. arr[mid] < arr[mid - 1] 说明mid在左边的区间,让left = mid
class Solution {public int peakIndexInMountainArray(int[] arr) {int left = 0;int right = arr.length - 1;while(left < right){int mid = left + (right - left + 1) / 2;if(arr[mid] < arr[mid - 1]){right = mid - 1;}else{left = mid;}}return left;}
} 


http://www.ppmy.cn/devtools/88546.html

相关文章

在Linux CentOS系统中部署ELK

在Linux CentOS系统中部署ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;日志分析系统是一个涉及多个步骤和组件的复杂过程。ELK堆栈以其强大的日志收集、存储、分析和可视化能力&#xff0c;成为企业监控、故障排查和性能优化的重要工具。以下是一个详细的部署指…

用script实现的一个简易计算机

目录 一、计算器原理 二、源码 三、结果展示 四、不足与改进 一、计算器原理 首先我们列出想象中简易计算器的样子&#xff1a; 虽然画的磕碜但是应该不影响下面的操作hh 首先想到用表格形式在网页中表示它&#xff0c;是一个5行4列的表格&#xff0c;接着要实现计算器的…

【人工智能专栏】Gradient Clip 梯度裁剪(防止梯度爆炸或消失的技术)

Gradient Clip 梯度裁剪 有啥用 NB: 深度学习里面的梯度裁剪(Gradient Clipping)是一种防止梯度爆炸或消失的技术,它可以限制梯度的范数或值在一个合理的范围内,从而保证模型的稳定训练。 梯度裁剪有两种常见的方法: 按照梯度的L2范数进行裁剪,即如果梯度的L2范数超过了…

JavaSE第11篇:设计模式

一、创建型模式 1、工厂方法模式 2、抽象工厂模式 3、单例模式singleton /*** 单例* 饿汉式(线程安全的):在加载类的时候就会创建类的单例&#xff0c;并保存在类中。* 1.定义类变量实例并直接实例化&#xff0c;在类加载的时候就完成了实例化并保存在类中;* 2.定义无参构造…

Upload-labs靶场Pass01-Pass21全解

文章目录 Pass-01 前端JSJS绕过上传或者用burp抓包的方式 Pass-02 MIME检测Pass-03 特殊文件后缀黑白名单绕过特殊文件名绕过 Pass-04 .htacess上传Pass-05 user.ini文件上传Pass-06 大小写绕过Pass-07 空格绕过Pass-08 .绕过Pass-09 ::$DATA绕过Pass-10 .空格.绕过Pass-11 双写…

C#进阶-轻量级ORM框架Dapper的使用教程与原理详解

本文详细介绍了Dapper在C#中的使用方法&#xff0c;包括Dapper的基本概念、与其他持久层框架的比较、基本语法和高级语法的使用&#xff0c;并通过实例讲解了如何在项目中集成和使用Dapper。Dapper以其高效的性能和简洁的API受到开发者的青睐&#xff0c;适用于各种数据库操作需…

付费进群系统源码原版最新修复全开源版

付费进群&#xff0c;和平时所见到的别人拉你进群是不一样的&#xff0c;付费进群需要先缴费以后&#xff0c;才会看到群的二维码&#xff0c;扫码进群或者是长按二维码图片识别进群&#xff0c;付费进群这个功能广泛应用于拼多多的砍价群&#xff0c;活动的助力群&#xff0c;…

关于qt中如何布局

qt中有水平布局 垂直布局等等 1 可把控件放到空窗口中进行水平布局 要想有间隙 加弹簧即可 lineedit控件中若想让输入的数在屏幕上显示密码 别人不可见 usernameLineEdit->text(); 这个函数是获取用户输入 然后与if else 中的密码相匹配 #include <QApplication> #inc…