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使用最小花费爬楼梯刷题打卡
16 0
|
6天前
|
C++ Python
leetcode-530:二叉搜索树的最小绝对差
leetcode-530:二叉搜索树的最小绝对差
20 0
|
6天前
|
C++
牛客:最大的差
牛客:最大的差
16 1
|
6天前
leetcode-1200:最小绝对差
leetcode-1200:最小绝对差
25 1
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【力扣每日一题:2-19】1004. 最大连续1的个数 III【中等】
【LeetCode-每日一题】-16. 最接近的三数之和
【LeetCode-每日一题】-16. 最接近的三数之和
力扣530.二叉搜索树的最小绝对差
力扣530.二叉搜索树的最小绝对差
|
11月前
力扣 -- 746. 使用最小花费爬楼梯
力扣 -- 746. 使用最小花费爬楼梯
|
12月前
|
人工智能 算法 BI
【每日算法Day 97】经典面试题:求两个数组最小差
【每日算法Day 97】经典面试题:求两个数组最小差
leetcode每日一题:746. 使用最小花费爬楼梯
leetcode每日一题:746. 使用最小花费爬楼梯