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

news2024/11/26 8:27:47

在这里插入图片描述
题目链接

思路一:

在这里插入图片描述

思路二:

请添加图片描述
请添加图片描述

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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/859057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PROFINET转DeviceNet网关普通网线能代替profinet吗

捷米JM-DNT-PN这款神器&#xff0c;连接PROFINET和DeviceNet网络&#xff0c;让两边数据轻松传输。 这个网关不仅从ETHERNET/IP和DEVICENET一侧读写数据&#xff0c;还可以将缓冲区数据交换&#xff0c;这样就可以在两个网络之间愉快地传递数据了&#xff01;而且&#xff0c;…

找不到msvcr120.dll,无法继续执行代码,怎么修复?

当msvcp120.dll文件丢失或找不到时&#xff0c;会导致无法运行使用C编写的程序。这可能是由于以下原因导致的&#xff1a; 1.删除或移动文件&#xff1a;如果你不小心删除了或移动了msvcp120.dll文件&#xff0c;你将无法找到它并加载它&#xff0c;从而导致程序无法正常运行。…

护肤品种草软文怎么写?教你几招写作技巧

护肤品种草软文以独特的方式将产品的优势和特点传递给消费者&#xff0c;从而引导消费者购买。然而&#xff0c;随着护肤品市场的竞争日益激烈&#xff0c;如何写出一篇高质量的护肤品种草软文已经成为了很多品牌方和企业方的难题。本文伯乐网络传媒将从多个角度教你如何写出一…

学习C语言的好处:

基础编程语言&#xff1a;C语言是其他编程语言的基础&#xff0c;学习C语言可为后续学习打下坚实基础&#xff0c;广泛应用于嵌入式系统、操作系统、网络协议等。 简单易学&#xff1a;C语言语法简单易懂&#xff0c;适合初学者。只需文本编辑器和编译器&#xff0c;即可开始编…

μCOS-Ⅲ+GD32_SysTick与PendSV中断管理配置浅解

μCOS-ⅢGD32_SysTick与PendSV中断管理配置浅解 GD32移植μCOS-Ⅲ时&#xff0c;需要特别关注的两个与系统相关的且非常重要的中断&#xff0c;一个是提供OS系统时基的滴答定时器(SysTick_Handler中断)&#xff0c;另一个是跟任务调度有关的(PendSV_Handler中断)&#xff0c;成…

常见的数据结构:树Tree

目录 1.概念 1.1 满二叉树 1.2 完全二叉树 1.3 平衡二叉树 2.遍历方式 2.1 先序遍历 2.2 中序遍历 2.3 后序遍历 2.4 层序遍历 1.概念 原理&#xff1a;一种特殊的数据结构&#xff0c;每个节点有零个或多个子节点&#xff1b;没有父节点的节点称为根节点&#xff1b;每…

【Flutter】【基础】CustomPaint 绘画功能,绘制各种图形(二)

CustomPaint 使用实例和代码&#xff1a; 1.canvas.drawColor 绘制背景颜色 class MyPainter1 extends CustomPainter {overridevoid paint(Canvas canvas, Size size) {//绘制背景颜色&#xff0c;整个UI 现在就是红色的canvas.drawColor(Colors.red, BlendMode.srcATop);}…

STM32--EXTI外部中断

前文回顾---STM32--GPIO 相关回顾--有关中断系统简介 目录 STM32中断 NVIC EXTI外部中断 AFIO EXTI框图 旋转编码器简介 对射式红外传感器工程 代码&#xff1a; 旋转编码器工程 代码&#xff1a; STM32中断 先说一下基本原理&#xff1a; 1.中断请求发生&#xff1a…

创建型设计模式:4、建造者模式(Builder Pattern)

目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…

Java utgard连接OPC问题记录

1- 0x00000005 user access deny,用户校验不通过: 这个问题检查了一天,首先确认用户名密码没错,检查了一遍DCOM配置,也没有问题, 接下来陷入了困境, 后来查了些资料,顺着用户校验不通过这条线索, 查看Windows系统日志,如下: 安全日志中记录用户登录行为, OPC通信需要使用Windo…

这种鼠标悬浮,图片放大,鼠标移出,图片变回原来的大小,是如何实现的?

在Vue中实现鼠标悬浮时图片放大效果&#xff0c;以及鼠标移出时图片恢复原来大小&#xff0c;可以使用Vue的事件绑定和样式绑定功能来完成。以下是一个基本的示例&#xff1a; 首先&#xff0c;在Vue组件中&#xff0c;定义一个数据属性来控制图片的放大和恢复&#xff1a; &…

交叉导轨在OA机械中起什么作用?

OA机是将计算机、通信等现代化技术运用到传统办公方式&#xff0c;进而形成的一种新型办公方式。OA机利用现代化设备和信息化技术&#xff0c;代替办公人员传统的部分手动或重复性业务活动&#xff0c;优质而高效地处理办公事务和业务信息&#xff0c;实现对信息资源的高效利用…

Vue3 + Ts + Vite 封装一套企业级axiso全流程

前期回顾 从零搭建 Vue3 VIte Ts 项目 —— 并集成eslint 、prettier、stylelint、husky、lint-staged、pinia、axios、loding、动态路由…_彩色之外的博客-CSDN博客 实现功能&#xff1a; 取消重复请求&#xff1a;完全相同的接口在上一个pending状态时&#xff0c;自动取…

Flink多流处理之coGroup(协同分组)

这篇文章主要介绍协同分组coGroup的使用,先讲解API代码模板,后面会结图解介绍coGroup是如何将流中数据进行分组的. 1 API介绍 数据源# 左流数据 ➜ ~ nc -lk 6666 101,Tom 102,小明 103,小黑 104,张强 105,Ken 106,GG小日子 107,小花 108,赵宣艺 109,明亮# 右流数据 ➜ ~ n…

Discuz论坛网站防复制代码分享

代码一 <script language"JavaScript">document.onselectstartnew Function("event.returnValuefalse;");</script>或是 代码二 <body onmousemove\HideMenu()\ oncontextmenu"return false" ondragstart"return false&q…

springboot整合JMH做优化实战

这段时间接手项目出现各种问题&#xff0c;令人不胜烦扰。吐槽下公司做项目完全靠人堆&#xff0c;大上快上风格注定留下一地鸡毛&#xff0c;修修补补不如想如何提升同事代码水准免得背锅。偶然看到关于JMH对于优化java代码的直观性&#xff0c;于是有了这篇文章&#xff0c;希…

浮动路由解决单点链路故障问题(第三十三课)

浮动路由解决单点链路故障问题(第三十三课) 理论来源于实践 1 路由的分类 2 直连路由: PC>ping 192.168.5.11Ping 192.168.5.11: 32 data bytes, Press Ctrl_C to break Request timeout! Request timeout! Request timeout! Request timeout! Request timeout!--- 192.16…

电脑ip地址怎么改 ip地址怎么改到别的城市

一、ip地址怎么改到别的城市 1.ip地址怎么改到别的城市&#xff0c;1、重启WIFI路由设备 一般手机或电脑在家或公司上网时都是接入到路由器的WIFI网络,再由路由器分配上网IP地址,如果要更换上网IP那么重启路由器设备后,路由器会向网络运营商进行宽带的重新拨号,此时手机或电脑设…

小程序自动化测试的示例代码

目录 背景 自动化 SDK 还原用户行为 总结 背景 上述描述看似简单&#xff0c;但是中间还是有些难点的&#xff0c;第一个难点就是如何在业务人员操作小程序的时候记录操作路径&#xff0c;第二个难点就是如何将记录的操作路径进行还原。 自动化 SDK 如何将操作路径还原这…

直接在html中引入Vue.js的cdn来实现一个简单的上传图片组件

摘要 当使用 Vue.js 的 CDN 来实现一个简单的上传图片组件时&#xff0c;你可以利用 Vue 的数据绑定和事件处理能力&#xff0c;结合 HTML 和 CSS&#xff0c;轻松地创建一个交互式的图片上传界面。以下是一个示例&#xff1a; 代码结构 index.html <!DOCTYPE html> &…