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
  • 相关阅读:
    Kattis
    HDU
    回溯法理解
    算法第5章上机实践报告
    贪心算法理解
    [模板] Dijkstra(堆优化)算法求最短路 Apare_xzc
    【文件管理系统】 Apaer_xzc
    [CCF] 201403-2 窗口 Apare_xzc
    [CCF] 201412-2 Z字形扫描 Apare_xzc
    [CCF] 201503-5 最小花费 Apare_xzc
  • 原文地址:https://www.cnblogs.com/seyjs/p/11582769.html
Copyright © 2011-2022 走看看