leetcode-每日一题1200. 最小绝对差

简介: leetcode-每日一题1200. 最小绝对差

07ba6d0d00d44250b5a49809c579c999.png


题目链接:https://leetcode.cn/problems/minimum-absolute-difference/


思路


1.需要找出最小绝对值差


那我们是不是可以先从小到大排序arr数组,通过遍历数组找出arr[i]-arr[i-1]的最小绝对值差res。


2.需要我们找出所有最小绝对值差的元素对,并按升序排序


我们已经找出最小绝对值差,我们只要再对数组遍历一遍找出arr[i]-arr[i-1] = res的元素对,把他插入到ans数组里,因为我们之前已经对数组进行排序,所以我们找出的所有答案都是以升序存入ans数组


代码实现


func minimumAbsDifference(arr []int) (ans [][]int) {
    sort.Ints(arr)
    res := 10000000
    for i := 1; i < len(arr) ;i++ {
      //找出最小绝对值差
        if arr[i] - arr[i - 1] < res {
            res = arr[i] - arr[i - 1]
        }
    }
    for i := 1; i < len(arr) ;i++ {
      //找出最小绝对值差的元素对,并存入ans数组
        if arr[i] - arr[i - 1] == res {
            ans = append(ans, []int{arr[i - 1], arr[i]})
        }
    }
    return 
}


目录
相关文章
|
6月前
leetcode746使用最小花费爬楼梯刷题打卡
leetcode746使用最小花费爬楼梯刷题打卡
38 0
|
6月前
|
C++
牛客:最大的差
牛客:最大的差
32 1
|
6月前
leetcode-1200:最小绝对差
leetcode-1200:最小绝对差
40 1
|
6月前
|
人工智能 算法 Java
K倍区间(蓝桥杯每日一题)
K倍区间(蓝桥杯每日一题)
54 0
【力扣每日一题:2-20】697. 数组的度【简单】
【力扣每日一题:2-20】697. 数组的度【简单】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【LeetCode-每日一题】-16. 最接近的三数之和
【LeetCode-每日一题】-16. 最接近的三数之和
|
人工智能 算法 BI
【每日算法Day 97】经典面试题:求两个数组最小差
【每日算法Day 97】经典面试题:求两个数组最小差
134 0
leetcode每日一题:746. 使用最小花费爬楼梯
leetcode每日一题:746. 使用最小花费爬楼梯