首页 > 试题广场 >

最小差值

[编程题]最小差值
  • 热度指数:4820 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给你一个数组,请你求出数组a中任意两个元素间差的绝对值的最小值。
示例1

输入

[1,2,4]

输出

1
示例2

输入

[1,3,1]

输出

0
class Solution:
    def minDifference(self , a ):
        # write code here
        set_tmp = set(a)
        if len(a) != len(set_tmp):
            return 0
        else:
            a.sort()
            min_val = a[1] - a[0]
            for i in range(1, len(a)-1):
                if a[i+1] - a[i] < min_val:
                    min_val = a[i+1] - a[i]
                else:
                    continue
        return min_val


发表于 2021-07-13 20:47:07 回复(0)
class Solution:
    def minDifference(self , a ):
        # write code here
        a.sort()
        m=a[1]-a[0]
        for i in range(len(a)-1):
            m=a[i+1]-a[i] if a[i+1]-a[i] <m else m
            if m==0:
                break
        return m

发表于 2021-06-17 21:25:25 回复(0)

三步走:

  1. 排序
  2. 获取int最大值
  3. 穷举
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 求最小差值
# @param a int整型一维数组 数组a
# @return int整型
#
class Solution:
    def minDifference(self , a ):
        # write code here
        a = sorted(a)    # 排序

        import sys
        res = sys.maxsize    # 获取一个 int 最大值

        for i, e in enumerate(a):    # 穷举比较
            n = abs(a[i] - a[i - 1])
            if n < res:
                res = n
        return res
发表于 2020-12-17 19:44:42 回复(0)

问题信息

难度:
3条回答 3510浏览

热门推荐

通过挑战的用户

查看代码