CCF201712-1 最小差值(100分)python兩種方法實現
阿新 • • 發佈:2019-02-06
最小差值
問題描述
問題描述
給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。
輸入格式
輸入第一行包含一個整數n。
第二行包含n個正整數,相鄰整數之間使用一個空格分隔。
輸出格式
輸出一個整數,表示答案。
樣例輸入
5
1 5 4 8 20
樣例輸出
1
樣例說明
相差最小的兩個數是5和4,它們之間的差值是1。
樣例輸入
5
9 3 6 1 3
樣例輸出
0
樣例說明
有兩個相同的數3,它們之間的差值是0.
資料規模和約定
對於所有評測用例,2 ≤ n ≤ 1000,每個給定的整數都是不超過10000的正整數
程式碼實現
方法一:(暴力法)
num_str = input() in_str = input() min = 10000 num = [] for i in in_str.split(): num.append(int(i)) if int(num_str) <= 1000 and int(num_str) >= 2 and len(num) <= 1000 and len(num) >= 2: for i in range(len(num)): for j in range(i+1,len(num)): sub = abs(num[i]-num[j]) if min > sub: min = sub print(min) else: print()
方法二:(排序法)
num_str = input() in_str = input() num = [] for i in in_str.split(): num.append(int(i)) num.sort() if int(num_str) <= 1000 and int(num_str) >= 2 and len(num) <= 1000 and len(num) >= 2: sub = [] for i in range(len(num) - 1): sub.append(abs(num[i]-num[i+1])) print(min(sub)) else: print()
都是100分。