首页 > 其他分享 >lc162 寻找峰值(二分法)

lc162 寻找峰值(二分法)

时间:2024-04-11 13:35:14浏览次数:17  
标签:right int mid 峰值 二分法 lc162

 

 二分法找部分有序数组题

class Solution {     public int findPeakElement(int[] nums) {      int left=0;      int right=nums.length-1;      while(left<right){//因为这道题需要用mid和mid+1比较,所以左右不可以相等否则mid+1会越界          int mid=left+(right-left)/2;          if(nums[mid]>nums[mid+1]){//如果mid比mid+1大,说明递减,峰值在左边,移动右端         right=mid;          }else{         left=mid+1;//反之,峰值在右边,由于mid已经比mid+1小了,所以mid不可能是峰值,左端移动到mid+1          }
     }      return right;     }  

标签:right,int,mid,峰值,二分法,lc162
From: https://www.cnblogs.com/doudou666/p/18128896

相关文章

  • 最长上升子序列——二分法
    前置设lowilow_ilowi​:长度为......
  • 和为给定数(二分法)
    题目: 描述给出若干个整数,询问其中是否有一对数的和等于给定的数。输入共三行:第一行是整数n(0<n<=100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到10^8之间。第三行是一个整数m(0<=m<=2^30),表示需要得到的和。输出若存在和为m的数对,输出两个整数,小的在......
  • ·跟着代码随想录刷力扣· ·数组部分· 2. 二分法
    leetcode题目:704二分法一、回顾顺序搜索(一)无序列表的顺序搜索,时间复杂度O(n)defsearch(self,nums:List[int],target:int)->int:pos=0whilepos<len(nums):ifnums[pos]==target:returnpos......
  • 二分法
    概述二分查找详解.mdSTLC++二分查找库二分查找库闭区间、左闭右开区间和开区间视频讲解二分法classSolution{//lower_bound返回最小的满足nums[i]>=target的i//如果数组为空,或者所有数都<target,则返回nums.size()//要求nums是非递减的,即......
  • 代码随想录第一天-双指针+二分法
    参考资源:https://programmercarl.com/、ChatGPT3.5语言:Java二分法二分法,又称为二分查找或折半查找,是一种在有序数组中查找目标值的算法。它的基本思想是将目标值与数组中间的元素进行比较,若目标值等于中间元素,则查找成功;若目标值小于中间元素,则在数组的左半部分继续查......
  • 3月22日二分法查找
    二分查找:二分查找也叫折半查找,二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。普通查找的时间复杂度为O(n),二分查找的时间复杂度仅需要O(log2^n)查找的实现原理:先定左右边界,之后比较待查找元素与中间元素谁大谁小,如果中间值大于目标值,那么右边界等于中......
  • 非有序数组也能二分? —— 红蓝染色法续篇(Leetcode 162.寻找峰值)
    1.写在前面本文为个人学习总结,参考:B站Up:灵茶山艾府参考视频链接:https://www.bilibili.com/video/BV1QK411d76w/2.题目我们来看一下下面这道题:峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在......
  • [数组练习题]二分法查找操作实例:使用二分法查找有序数组中元素。 找到返回索引,不存在
    文章目录题干一、题目分析1.定义数组,用于后续在数组中查找元素2.对数组进行排序3.定义方法4.调用方法,打印输出二、代码1.代码块2.一图流总结题干提示:这段是题干,仔细阅读仔细分析:二分法查找操作:使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。......
  • Python 递归函数实现二分法,带思路解释
            二分法可以大大提升对有序数列的查找,传统的迭代查找会挨个比较数列中的值,如果数列较为庞大会影响查询效率。二分法每次取数列的中间数与待查找数字比较大小,以升序排列为例子 首先要考虑数列长度的奇偶性。        奇数取中间位置的数字,如果比待查找......
  • 【二分法】分巧克力问题/python
    1.看出是用二分法:最大值最小化,最小值最大化,满足条件的最值,用二分法做。2.确定low,high,确定check的条件3.注意: 是当low<high的时候进行循环,当相等或大于的时候输出,while的条件不能写错。 本题是在区间里面找满足条件的最大值,所以,在算mid的时候面对取整的问题让它向大......