首页 > 其他分享 >【二分查找】LeetCode 162. 寻找峰值思路

【二分查找】LeetCode 162. 寻找峰值思路

时间:2023-05-13 10:14:08浏览次数:47  
标签:二分 right nums int mid 峰值 LeetCode 162 left

题目链接

162. 寻找峰值思路

思路

一个不严谨但是好理解的思路是:如果 \(nums[mid] > nums[mid + 1]\),那么 \(nums[mid + 1]\) 肯定不是峰值,此时让 \(right = mid\),从左边继续找峰值。反之则 \(nums[mid]\) 肯定不为峰值,让 \(left = mid + 1\)。

代码

class Solution {
    public int findPeakElement(int[] nums) {
        int n = nums.length;
        int left = 0;
        int right = n - 1;
        while(left < right){
            int mid = (right - left) / 2 + left;
            if(nums[mid] > nums[mid + 1]){
                right = mid;
            }else{
                left = mid + 1;
            }
        }

        return left;
    }
}

标签:二分,right,nums,int,mid,峰值,LeetCode,162,left
From: https://www.cnblogs.com/shixuanliu/p/17396813.html

相关文章

  • 【数组01】二分查找&移除元素
    TableofContents二分查找704.二分查找35.搜索插入位置34.在排序数组中查找元素的第一个和最后一个位置69.x的平方根367.有效完全平方数移除元素27.移除元素26.删除排序数组中的重复项283.移动零844.比较含退格的字符串977.有序数组的平方Solutions7......
  • 【二分查找】LeetCode 278. 第一个错误的版本
    题目链接278.第一个错误的版本思路二分查找代码publicclassSolutionextendsVersionControl{publicintfirstBadVersion(intn){intleft=1,right=n-1;while(left<=right){intmid=left+(right-left)/2;......
  • #yyds干货盘点# LeetCode程序员面试金典:对称二叉树
    1.简述:给你一个二叉树的根节点root,检查它是否轴对称。 示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false2.代码实现:classSolution{publicbooleanisSymmetric(TreeNoderoot){returncheck(root,root);}......
  • 1. LeetCode 35. 力扣第一题
    按照代码随想录的顺序,今天刷了LeetCode35.搜索插入位置,也是刷的力扣第一题classSolution{public:intsearchInsert(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;while(left<=right){intm......
  • leetcode 1251 平均售價
    leetcode1251平均售價selectr.product_id,round(sum(r.price*r.units)/sum(r.units),2)asaverage_pricefrom(selectp.product_id,p.price,u.unitsfromPricespleftjoinUnitsSolduonp.product_id=u.product_idwhereu.purchase_......
  • leetcode 1280 學生們參加各科測試的次數
    leetcode1280學生們參加各科測試的次數 selects.student_id,s.student_name,st.subject_name,if(e.result,e.result,0)asattended_examsfromStudentssjoinSubjectsstleftjoin(selectstudent_id,subject_name,count(*)asresultfromExaminatio......
  • 2023五一杯B题问题四----基于二分最大流最优解
    4.1问题四的分析:本题要求建立一个最小成本的运输策略,考虑最大网络流问题(MaximumFlowProblem),对于一个带权有向图G(V,E),其中V为图中所有点的集合,E为所有边的集合,且每一条边都有它的流量上限.这个带权有向图中有两个特殊的点:源(source)节点s和汇(sink)节点t,且这两个点......
  • 二分查找
    二分查找是一种在有序数组中查找特定元素的算法。它的基本思想是将数组分成两部分,判断目标元素在哪一部分中,然后继续在该部分中进行查找,直到找到目标元素或者确定目标元素不存在为止。这种算法的时间复杂度为O(log n),比线性查找的时间复杂度O(n)更快。例如,寻找n个从小到大顺序的......
  • 整体二分总结
    整体二分总结整体二分,就是一种高效离线处理可二分答案的询问的方法,可以代替例如树套树这种高级数据结构。例题:1.P1527[国家集训队]矩阵乘法题意:多次询问,求子矩阵第\(k\)小数。思路:先考虑如果只有一个询问,可以二分答案,把矩阵中小于等于\(mid\)的数赋1,大于的赋0,那么如果子矩阵......
  • leetcode 1084 销售分析III
    leetcode1084销售分析IIIselectdistinctp.product_id,p.product_namefromProductpleftjoinSalessonp.product_id=s.product_idwheres.product_idnotin(selectproduct_idfromSaleswheresale_date<'2019-01-01'orsale_d......