一、数组左、右部分最大值绝对值之差的最大值
给定一个数组arr,将数组划分成左、右两部分,有n-1种划分方法,求左右部分最大值之差绝对值的最大值,有三种解法。
【解法一】时间复杂度O(N2),空间复杂度O(1)
暴力解
【解法二】时间复杂度O(N),空间复杂度O(N)
先根据arr求得辅助数组lArr和rArr
lArr[i]表示从arr[0]到arr[i]的最大值,rArr[i]表示从arr[i]到arr[arr.length-1]的最大值
【解法三】时间复杂度O(N),空间复杂度O(1)
发现题目中都是左右部分的最大值,那这两个最大值中必有一个是整个数组的最大值。
1、如果全局最大值是在左边部分,那么要让差的绝对值最大,右边部分只能取最后一个数。
2、如果全局最大值是在右边部分,那么要让差的绝对值最大,左边部分只能取第一个数。
这样能保证另一部分的最大值尽可能小。
左神算法 最大的leftMax和rightMax之差的绝对值
最新推荐文章于 2023-05-05 22:36:00 发布