[路飞]_力扣算法题_164. 最大间距

143 阅读1分钟
难度 困难\color{red}{困难}

题目内容 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。

题解

  
    var maximumGap = function(nums) {
    // 1. 先把length<2的情况排除:
    if(nums.length < 2) return 0;
    // 把数组进行一次降序排序
    nums.sort((a, b) => b - a);
    // 定义一个用于返回的差值
    let maxGap = 0
    // 给排序后的数组进行逐个计算,每次把上一个元素和下一个元素做比对,如果差值比当前maxGap大就替换
    nums.reduce((a, b) =>{
        const gap = a - b;
        if(gap > maxGap) maxGap = gap
        return b
    })
    return maxGap
};