C语言每日一题:15:寻找峰值。

这篇具有很好参考价值的文章主要介绍了C语言每日一题:15:寻找峰值。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C语言每日一题:15:寻找峰值。,c语言,算法,开发语言
题目链接

思路一:

C语言每日一题:15:寻找峰值。,c语言,算法,开发语言

思路二:

C语言每日一题:15:寻找峰值。,c语言,算法,开发语言
C语言每日一题:15:寻找峰值。,c语言,算法,开发语言文章来源地址https://www.toymoban.com/news/detail-638989.html

int findPeakElement(int* nums, int numsLen ) {
    // write code here
    int left=0;
    int right=numsLen-1;
    int* cur=nums;
    int mid=0;

    //特殊情况判断两个值,单增和单减
    if(cur[0]>cur[1])
    {
        return 0;
    }
    if(cur[numsLen-1]>cur[numsLen-2])
    {
        return numsLen-1;
    }

    //普遍情况
    while(left<right)
    {
        //中间下标
        mid=((left+right)/2);
        //其他的正常判断
        //上升
        if((cur[mid-1]<cur[mid])&&(cur[mid]<cur[mid+1]))
        {
            left=mid;
        }
        //下降
        else if((cur[mid-1]>cur[mid])&&(cur[mid]>cur[mid+1]))
        {
            right=mid;
        }
        //谷底
         else if((cur[mid-1]>cur[mid])&&(cur[mid]<cur[mid+1]))
        {
           left=mid;
        }
        //峰值
        else if((cur[mid-1]<cur[mid])&&(cur[mid]>cur[mid+1]))
        {
            return mid;
        }    
    }
    return -1;
}

到了这里,关于C语言每日一题:15:寻找峰值。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023-07-15力扣每日一题

    链接: 18. 四数之和 题意: 一个数组n,一个目标值t,在数组内找四个数字和等于t,求能有多少种组合 解: 0716:一看怎么昨天卡没打,原来昨天做的第一题不是每日一题,麻了 n很小,200,那么 先排序 ,然后弄一个 双指针开双循环 l,r ,确定每个组合的最大数字-数字4和最

    2024年02月16日
    浏览(38)
  • 2023-08-15力扣每日一题

    链接: 833. 字符串中的查找与替换 题意: n组操作,其中第i组: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么也不做 。 如果出现,则用 targets[i] 替换 该子字符串。 所有替换操作必须 同时 发生,这意味着替换操作不应该影响彼此

    2024年02月12日
    浏览(37)
  • 2023-07-15 LeetCode每日一题(四数之和)

    点击跳转到题目位置 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且 不重复 的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): 0 = a, b, c, d n a、b、c 和 d 互不相同 nums[a] + nums[b]

    2024年02月16日
    浏览(45)
  • 【力扣每日一题】2023.7.15 四数之和

    这题和本月出过的每日一题:两数之和,三数之和类似。 不夸张的说只要把三数之和的代码拿来再套层for循环改改就可以了。 不过我这里还是简单捋一捋思路,题目给一个数组,要求返回所有长度为4,总和为 target 的子数组(不用连续)。 比较容易想到的是暴力解法,直接

    2024年02月16日
    浏览(79)
  • (双指针 ) 15. 三数之和 ——【Leetcode每日一题】

    难度:中等 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j 、 i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请 你返回所有和为 0 且不重复的三元组。 注意 :答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:

    2024年02月09日
    浏览(48)
  • 3.15每日一题(分部积分求不定积分)

    注:在分部积分后,求不定积分时         (1)可以加项减项拆的方法求(常规方法)          (2)可以上下同乘e的-t次幂,方便求

    2024年02月06日
    浏览(56)
  • Leetcode每日一题:15. 三数之和(2023.7.9 C++)

    目录 15. 三数之和 题目描述: 实现代码与解析: 双指针 原理思路:         给你一个整数数组  nums  ,判断是否存在三元组  [nums[i], nums[j], nums[k]]  满足  i != j 、 i != k  且  j != k  ,同时还满足  nums[i] + nums[j] + nums[k] == 0  。请 你返回所有和为  0  且不重复的三元组

    2024年02月13日
    浏览(39)
  • Leetcode每日一题:18. 四数之和(2023.7.15 C++)

    目录 18. 四数之和 题目描述: 实现代码与解析: 双指针 原理思路:         给你一个由  n  个整数组成的数组  nums  ,和一个目标值  target  。请你找出并返回满足下述全部条件且 不重复 的四元组  [nums[a], nums[b], nums[c], nums[d]]  (若两个四元组元素一一对应,则认为

    2024年02月16日
    浏览(57)
  • 2023-08-15 LeetCode每日一题(字符串中的查找与替换)

    点击跳转到题目位置 你会得到一个字符串 s (索引从 0 开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indices, sources, targets。 要完成第 i 个替换操作: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么

    2024年02月12日
    浏览(42)
  • LeetCode、162. 寻找峰值【中等,最大值、二分】

    博主介绍:✌目前全网粉丝2W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容:Java后端、算法、分布式微服务、中间件、前端、运维、ROS等。 博主所有博客文件目录索引:博客目录索引(持续更新) 视频平台:

    2024年01月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包