左右最值最大差

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

题目描述
给定一个长度为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

大体思路:
因为题目要求最大值 减去最大值
首先找到数组中的最大值,接下来还缺一个最大值。题目要求是2个最大值的差, 其实就是要保证另一个最大值最小。 所以比较左右端点,小的则为另一个最大值。 为什么是端点呢?因为范围扩大的话 只会让最大值变成更大而不会变小。
所以就是 最大值 - (2个端点的最小值)

public class MaxGap {
    public static int findMaxGap(int[] A, int n) {
        // write code here
        int max = A[0];
        int min;
        for (int i = 1;i < n ; i++) {
            max = Math.max(max,A[i]);
        }
        min = Math.min(A[0],A[n-1]);
        return  max - min;
    }
}
目录
相关文章
|
7月前
|
算法 Java 程序员
认识复杂度、对数器、二分法
认识复杂度、对数器、二分法
61 1
|
5月前
|
人工智能 算法
算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖
**统计学江湖概要** - **平均数(均值)**:数字的总和除以数量,代表集中趋势,如分赃时平均分配。 - **众数**:出现次数最多的数字,反映了最常见的值,如同一招式被频繁使用。 - **中位数**:排序后位于中间的值,反映数据的中心位置,如同武者武功的中等水平。 - **极差**:最大值减最小值,表示数据波动范围,类似武功最高与最低的差距。 - **方差**:衡量数据波动性,计算每个数值与均值差的平方和的平均数。 - **标准差**:方差的平方根,同单位的波动度量。 - **频数**:某个值出现的次数,如统计武器使用情况。 - **频率**:频数与总次数的比例,显示出现的相对频率。
103 2
算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖
|
6月前
每日一题 2006. 差的绝对值为 K 的数对数目
每日一题 2006. 差的绝对值为 K 的数对数目
|
6月前
4.寻找两个正序数组的中位数 (困难)
4.寻找两个正序数组的中位数 (困难)
|
7月前
|
人工智能 BI
区间问题之区间选点
区间问题之区间选点
|
7月前
|
搜索推荐
【hoare优化版】快速排序算法 | 三数取中&小区间优化(2)
【hoare优化版】快速排序算法 | 三数取中&小区间优化(2)
87 0
|
7月前
|
算法 测试技术 C#
【二分查找】【滑动窗口】最大化城市的最小电量
【二分查找】【滑动窗口】最大化城市的最小电量
|
7月前
|
算法 测试技术 C++
【二分查找】【滑动窗口】LeeCode2528:最大化城市的最小电量
【二分查找】【滑动窗口】LeeCode2528:最大化城市的最小电量
|
人工智能 BI
【贪心策略】区间选点问题
【贪心策略】区间选点问题
68 0