首页 > 试题广场 >

左右最值最大差

[编程题]左右最值最大差
  • 热度指数:9260 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

给定一个长度为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
头像 我谢谢你哦
发表于 2023-05-06 11:52:27
class MaxGap { public: int findMaxGap(vector<int> A, int n) { int ma = A[0]; for(auto e : A) ma = max(ma, e); 展开全文
头像 牛客574733168号
发表于 2023-09-02 23:03:52
首先要求最大差,那么就需要一个最大的数减去一个最小的数最大的数,无论左右两边怎么分,都是整体最大的数然后注意题目中说的 “ 求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少? ”,最绝的一种划分方案就是左边有一个最大值,然后最大值的右边只有一个值,那么这个值只能是最小值了。那 展开全文
头像 重生之我要当分子
发表于 2025-01-01 02:27:48
解题思路 这是一个数组划分问题,需要找到一个位置K,使得左右两部分的最大值之差的绝对值最大。 算法步骤: 找到数组的最大值: 记录最大值和它的位置。 遍历所有可能的划分点: 对于每个划分点 (从 到 ): 计算左部分 的最大值 计算右部分 的最大值 计算两部分最大值的差的绝对值 展开全文

问题信息

难度:
95条回答 23783浏览

热门推荐

通过挑战的用户

查看代码
左右最值最大差