左右最值最大差(给定一个长度为的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],求左右部分最大绝对差值)

左右最值最大差

给定一个长度为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

分析:

不管从哪分隔,其中有一部分的最大值肯定是整个数组的最大值max,而要是两部分差值最大,就要使不包含max的那部分最大值最小。首先,找到数组中的最大值max。

我们来分析一下max的位置会对结果造成什么影响:

  • 当max在索引为0的位置,此时不管从哪里分隔,左部分的最大数值一定为max,而右部分一定包含A[n-1],当A[n-1]为最小值时,我们肯定是在A[n-1]的前面分隔,保证A[n-1]是右部分最大值,使得如【7,3,1】,在1前面分隔,此时最大差值为max-A[n-1]。
  • 当max在索引为n-1的位置,同理,最大差值为max-A[0]。
  • 如果max在中甲的位置,那我们就取max-A[0]、max-A[n-1]的最大差值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值