力扣162:寻找峰值

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞

你必须实现时间复杂度为 O(log n)的算法来解决此问题。

代码:

复制代码
int findPeakElement(int* nums, int numsSize){
    int low=0, high=numsSize-1, mid;

    while(low < high){
        mid = (low + high) / 2;         
        if(nums[mid] > nums[mid+1]){    //峰值为num[mid]或在num[mid]的左侧
            high = mid;
        }else{                          
            low = mid+1;
        }
    }

    return low;
}
相关推荐
听取WA声一片(无恶意)1 天前
CSP-J/S 初赛图论完全讲义
算法·csp-s初赛·csp-j初赛
Brilliantwxx1 天前
【算法从零到千】【51-54】逆序对(分治+递归算法)
数据结构·算法·排序算法
小星星闪亮登场1 天前
2026河南萌新联赛第四场--南阳理工学院
数据结构·算法·贪心算法·动态规划·哈希算法·广度优先
土司大王1 天前
LeetCode hot100——两数之和
数据结构·算法·leetcode
luj_17681 天前
大航海时代:沉浸式财商实战沙盒
c语言·开发语言·网络·经验分享·算法
Navigator_Z1 天前
LeetCode //C - 1200. Minimum Absolute Difference
c语言·算法·leetcode
wabs6661 天前
关于字符串【力扣344.反转字符串的思考】
数据结构·算法·leetcode
LuminousCPP1 天前
数据结构基础篇(二):顺序表与链表全方位对比|从内存布局到 CPU 缓存理解底层差异
c语言·数据结构·经验分享·链表·缓存
有点。1 天前
C++二叉树(一)
开发语言·数据结构·c++
民乐团扒谱机1 天前
【微实验】谐波乘积谱(HPS)算法深度解析:原理、数学与代码实现
开发语言·人工智能·python·算法·语音识别·音乐