左右最值最大差

简介: 题目来源:牛客网上面的牛课堂系列算法讲座  http://www.nowcoder.com/courses/6/2/3   给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。

题目来源:牛客网上面的牛课堂系列算法讲座  http://www.nowcoder.com/courses/6/2/3

 

给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。

求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?

给定整数数组A和数组的大小n,请返回题目所求的答案。

 

测试样例:

[2,7,3,1,1],5

返回:6

 1 class  MaxGap {
 2 public:
 3     int  findMaxGap(vector<int>  A, int  n) {
 4         int  m = -1;
 5         for(int  i = 0; i < n ;i++){
 6             if(m < A[i])
 7                 m = A[i];
 8         }
 9         return  max((m-A[0]),(m-A[n-1]));
10     }
11 };

分析:假设全局最大值m在左边,那我们就希望右边的最大值越小越好。随着右边那个区间的左端点左移,右边的最大值不会变小,反倒是有可能变大,所以右边那个区间左端点越靠右越好。同理:最大值m划分到右边也类似,要求左边区间的右端点越靠左越好。所以,前n-1个元素的最大值m和A[0]或A[n-1]的差必然有一个是解。

 

代码和分析都是网友的贡献,这里仅作笔记。

 

相关文章
|
4月前
|
计算机视觉 流计算 Python
人脸识别照片眨眼张嘴生成器,一键生成眨眼照片app,怎么用一张照片做人脸识别
基于Python的人脸识别照片动画生成系统,支持眨眼和张嘴动作。使用OpenCV、dlib等技术实现,可输出GIF或序列帧。代码包含完整的人脸检测
|
5月前
|
Linux
在线对Linux进行磁盘扩容的技术指南。
综上所述,Linux磁盘扩容的过程,重要的不仅是技术,更是对每一步骤的深刻理解和投入的爱心。只要手握正确的工具,我们不仅能满足"孩子"的成长需求,还能享受其中的乐趣和成就。
336 10
|
11月前
|
存储 缓存 C语言
【c++】动态内存管理
本文介绍了C++中动态内存管理的新方式——`new`和`delete`操作符,详细探讨了它们的使用方法及与C语言中`malloc`/`free`的区别。文章首先回顾了C语言中的动态内存管理,接着通过代码实例展示了`new`和`delete`的基本用法,包括对内置类型和自定义类型的动态内存分配与释放。此外,文章还深入解析了`operator new`和`operator delete`的底层实现,以及定位new表达式的应用,最后总结了`malloc`/`free`与`new`/`delete`的主要差异。
182 3
|
人工智能 监控 算法
西门子S7-200 SMART PID回路控制,如何配置PID向导、调用子程序?如何创建状态图表测试程序?如何自整定PID参数?
PID控制器是应用最广泛的闭环控制器,它根据给定值与被控变量实测值之间的偏差,按照PID算法计算出控制器的输出量控制执行机构进行调节,使被控量跟随给定量进行变化并使系统达到稳定,自动消除各种干扰对控制过程的影响,其中P、I、D分别指比例、积分、微分。
西门子S7-200 SMART PID回路控制,如何配置PID向导、调用子程序?如何创建状态图表测试程序?如何自整定PID参数?
|
SQL 存储 人工智能
华为高斯认证(opengauss)HCIA
华为高斯认证(opengauss)HCIA
2791 0
|
数据库连接
MySQL-小表驱动大表
MySQL-小表驱动大表
316 0
|
弹性计算 Linux 开发工具
阿里云服务器学生免费领取指南
2023年阿里云服务器学生免费领取指南,阿里云学生服务器优惠活动:高效计划,可以免费领取一台阿里云服务器,如果你是一名高校学生,想搭建一个linux学习环境、git代码托管服务器,或者创建个人博客网站记录自己的学习成长历程,拥有一台云服务器是很有必要的。阿里云的飞天加速计划3.0——高校计划,面向学生开发者提供免费的云服务器福利,通过学生身份认证及续费任务后,最多可领取7个月免费云服务器ECS资源
|
缓存 Dart 安全
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
|
人工智能 知识图谱 开发者
T 检验基本原理 | 学习笔记
快速学习 T 检验基本原理
T 检验基本原理 | 学习笔记