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
  • 相关阅读:
    [CF1051F] The Shortest Statement
    [国家集训队] 墨墨的等式
    [CF558E] A Simple Task
    [洛谷P1349] 广义斐波那契数列
    [TJOI2009] 猜数字
    [洛谷P3403] 跳楼机
    学习力
    启动流程
    《鸟哥Linux》笔记——磁盘分区
    indexDB数据库
  • 原文地址:https://www.cnblogs.com/seyjs/p/11582769.html
Copyright © 2011-2022 走看看