zoukankan      html  css  js  c++  java
  • 【leetcode】1200. Minimum Absolute Difference

    题目如下:

    Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements. 

    Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows

    • a, b are from arr
    • a < b
    • b - a equals to the minimum absolute difference of any two elements in arr

    Example 1:

    Input: arr = [4,2,1,3]
    Output: [[1,2],[2,3],[3,4]]
    Explanation: The minimum absolute difference is 1. List all pairs with difference equal to 1 in ascending order.

    Example 2:

    Input: arr = [1,3,6,10,15]
    Output: [[1,3]]
    

    Example 3:

    Input: arr = [3,8,-10,23,19,-4,-14,27]
    Output: [[-14,-10],[19,23],[23,27]]
    

    Constraints:

    • 2 <= arr.length <= 10^5
    • -10^6 <= arr[i] <= 10^6
     

    解题思路:把arr排好序后依次求相邻两个元素的差值,即可得到结果。

    代码如下:

    class Solution(object):
        def minimumAbsDifference(self, arr):
            """
            :type arr: List[int]
            :rtype: List[List[int]]
            """
            arr.sort()
            res = []
            min_diff = float('inf')
            for i in range(len(arr)-1):
                if arr[i+1] - arr[i] < min_diff:
                    res = [[arr[i],arr[i+1]]]
                    min_diff = arr[i+1] - arr[i]
                elif arr[i+1] - arr[i] == min_diff:
                    res.append([arr[i],arr[i+1]])
            return res
  • 相关阅读:
    Linux常用命令1
    Linux常用命令
    java的接口和抽象类区别
    字符串的全排列
    字符串的全组合
    Mysql范式
    同步 异步 阻塞 非阻塞概念区分
    死锁产生的条件以及解决方法
    Mysql存储引擎MyIsAM和InnoDB区别
    SLES documentation
  • 原文地址:https://www.cnblogs.com/seyjs/p/11582769.html
Copyright © 2011-2022 走看看