不二如是 发表于 2022-9-1 18:07:58

0014-编程打卡:求出数组两两之差绝对值最小的值

本帖最后由 不二如是 于 2022-9-1 18:07 编辑






一星答案:

def fishc(data):
    b = []
    le = len(data)
    for i in range(0, le):
      b.append(data)
    min = abs(data-b)
    for i in range(le):
      for j in range(le):
            if i == j:
                break
            if abs(data-b) < min:
                min = abs(data-b)
    return min

a =
print(fishc(a))

二星答案:

def fishc(my_list):
    the_list = []
    for i in my_list:
      for k in my_list:
            n = abs(i-k)
            the_list.append(n)
    # 下面2句是为了清除差列表中自身相减得到的0
    for t in range(1, len(my_list)+1):
      the_list.remove(0)
    minnum = min(the_list)
    return minnum

if __name__ == '__main__':
    a =
    print(fishc(a))

三星答案:

a =
a.sort()
m = min( - a) for i in range(len(a) - 1)])
print(m)

基础语法:

https://www.bilibili.com/video/BV1c4411e77t

算法讲解:

https://www.bilibili.com/video/BV1HT4y1K7DY



tomok 发表于 2022-9-2 08:48:13

来看看代码

浪客四叶草 发表于 2022-9-2 12:54:32

"""
指定数组:
   
要求:
    输出指定数组中两两之差的最小绝对值
分析:
    1.可以对列表使用sort()函数进行排序
    2.然后分别取列表中的值进行计算
    3.取绝对值
    4.创建一个新列表,保存这些绝对值
    5.min() - 输出该列表的最小值即为最小的绝对值
"""
list1 =
# 1. sort()
list1.sort()# 默认是升序排序
print(list1)# 查看排序后的列表

# 2.取值进行计算 绝对值 添加到新列表中
abs_list = []
for i in range(len(list1)):
    if i == len(list1) - 1:# 不能使得接下来的代码超出列表索引值范围
      break
    abs_value = abs(list1 - list1)
    abs_list.append(abs_value)

# 3. 输出绝对值列表
print(abs_list)

# 4. 对绝对值列表abs_list()取最小值
print("结果为:", min(abs_list))

浪客四叶草 发表于 2022-9-2 13:13:53

# 三星答案 试解读
a =
# 1. 对列表进行排序
a.sort()

# 2. 使用列表推导式的同时 进行min()函数计算
# m = min( - a) for i in range(len(a) - 1)])
# print(m)

# 将上述列表推导式还原成for循环
abs_list = []# 将以上列表推导式所生成的列表-暂时命名为abs_list

for i in range(len(a) - 1):
    abs_value = abs(a - a)# 因为是求绝对值所以前面的元素减去后面的元素或者后面的元素减去前面的元素都无所谓
    abs_list.append(abs_value)# 将计算的结果添加到新的列表中

# 之后对列表调用min()函数 输出最小的绝对值
print(min(abs_list))

编程追风梦 发表于 2022-9-2 19:51:41

大佬教我一下呗,不知道答案
页: [1]
查看完整版本: 0014-编程打卡:求出数组两两之差绝对值最小的值