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

算法23.0

852. 山脉数组的峰顶索引 - 力扣(LeetCode)

自己的理解:

暴力解法的话  遍历一遍数组 然后存储下峰值元素以及下标就可以了  试试超时没有

哇咔咔 还真的没有超时???  中等题用遍历数组做出来了?!

下面开始二分算法:

发现mid<left的时候  left=mid也不敢跳出去 万一是结果呢   mid大于ret的时候 right=mid right也不敢跳过啊 万一是结果呢    到底用哪个?

还是要确定好二段性再用二分算法   确定好二段里面每一段分别的性质具体是什么

感觉双指针、滑动窗口都可以啊  只要找到下降的那个趋势 就找到点了 试试滑动窗口

我去还真的过了  比暴力解好一点 时间复杂度超过22%

细节:

maxIndex=(arr[i] > arr[maxIndex]) ? i : maxIndex;  要的就是这句代码
在遍历数组的时候更新:for i循环+三目运算符(本质是一个if语句) 

区间最左面和最右面都排除了 所以区间可以从left = 1 right = arr.length-2开始

别人的讲解:

最左面和最右面的元素是不用考虑的  暴力枚举时间复杂是O(n)

当我们这样划分数组之后 就会发现天然的分成了两段     左边的一段满足一个性质 右边的一个段满足一个性质  二段性

下面是题目、效果图和代码:

class Solution 
{public int peakIndexInMountainArray(int[] arr) {  int maxIndex = 0;for(int i =1;i<arr.length;i++){maxIndex=(arr[i] > arr[maxIndex]) ? i : maxIndex;}return maxIndex;}
}//maxIndex=(arr[i] > arr[maxIndex]) ? i : maxIndex;  要的就是这句代码
//在遍历数组的时候更新:for i循环+三目运算符(本质是一个if语句) 

class Solution {public int peakIndexInMountainArray(int[] arr) {//双指针or滑动窗口int left =0 ,right = 1;while(right<arr.length){if(arr[right]<arr[left]) break;left++;right++;}return left;}
}

class Solution 
{public int peakIndexInMountainArray(int[] arr) {int left =1 ,right = arr.length-2;while(left<right){int mid=left+(right-left+1)/2;if(arr[mid]>arr[mid-1]) left = mid;else right = mid-1;}return left;}
}
//xiyu251102&1#3*5

http://www.dtcms.com/a/560751.html

相关文章:

  • 怎么做免费的网站推广网站正在建设中 html 模板
  • 鸿蒙Flutter三方库适配指南:10.插件测试
  • 购物车高效开发指南:API与Vuex实战
  • 广州网站建设公司哪家好展厅设计制作
  • 【BFS 解决FloodFill 算法】4. 被围绕的区域(medium)
  • Go channel 的核心概念、操作语义、设计模式和实践要点
  • 现在还可以做夺宝网站怎么让网站被百度搜到
  • 深蓝汽车10月全球销量36792辆 S05销量突破2万辆
  • 四、CSS选择器(续)和三大特性
  • 高职新能源汽车技术专业职业发展指南
  • 初识MySQL:库的操作、数据类型、表的操作
  • AI助力汽车 UI 交互设计
  • 广州市手机网站建设平台有意义网站
  • MySQL到达梦数据库快速替换操作指南
  • Python NumPy广播机制详解:从原理到实战,数组运算的“隐形翅膀”
  • QT背景介绍与环境搭建
  • 【C++:多态】C++多态实现深度剖析:从抽象类约束到虚函数表机制
  • 【软考架构】案例分析-分布式锁
  • 15.5.手机设备信息
  • Mysql基础1
  • 集团网站网页模板网站建设超速云免费
  • HTTPS:现代网站运营的安全基石与价值引擎
  • 老鹰网网站建设外贸是做什么的工作
  • [N_083]基于springboot毕业设计管理系统
  • kotlin学习 lambda编程
  • 如何写好汇报材料经验总结
  • 百度收录的网站标题 --专业做公司网站的机构
  • 视频时间戳PTS和DTS的区别
  • 09-神经网络的结构:描述神经网络的层次化组成和设计
  • 【ComfyUI】Stable Audio 文本生成音频