力扣:164. 最大间距(Python3)

题目:

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

您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

输入:nums = [3,6,9,1]
输出:3
解释:排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。


示例 2:

输入:nums = [10]
输出:0

解释:数组元素个数小于 2,因此返回 0。

解法:

先排序,返回前后元素差的最大值。

代码:

class Solution:
    def maximumGap(self, nums: List[int]) -> int:
        nums.sort()
        result = 0
        if len(nums) > 1:
            nums_pre, nums_last = nums[:-1], nums[1:]
            result = max(result, max(map(lambda x: x[1] - x[0], zip(nums_pre, nums_last))))
        return result

你可能感兴趣的:(LeetCode,leetcode,算法,python)