試題編號: 201712-1
試題名稱: 最小差值
時間限制: 1.0s
記憶體限制: 256.0mb
問題描述:
問題描述
給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。
輸入格式
輸入第一行包含乙個整數n。
第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。
輸出格式
輸出乙個整數,表示答案。
樣例輸入
51 5 4 8 20
樣例輸出
樣例說明
相差最小的兩個數是5和4,它們之間的差值是1。
樣例輸入
59 3 6 1 3
樣例輸出
樣例說明
有兩個相同的數3,它們之間的差值是0.
資料規模和約定
對於所有評測用例,2 ≤ n ≤ 1000,每個給定的整數都是不超過10000的正整數。
————————————————
解法:這題最簡單的解法暴力求解,兩層for迴圈:
#輸入n個數字
n=int
(input()
)data=
input()
.split(
)for i in
range
(n):
data[i]
=int
(data[i]
)#將位置為0和1的數字只差作為最小差值
min=
abs(data[1]
-data[0]
)for i in
range
(n-1):
for j in
range
(i+1
,n):
t=abs(data[j]
-data[i]
)#更新最小差值
if tmin=t
print
(min)
注意比較時不能自身和自身做差,注意range()的範圍即可。
解法二:利用list.sort()排序,逐個作差即可
n=
int(
input()
)#處理第一行輸入
li=list
(map
(int
,input()
.split())
)#處理第二行輸入,用map()函式後轉為列表
li.sort(
)#對列表裡元素進行排序,預設從小到大
print
(min
(list
(map
(lambda x,y:y-x,li[:-
1],li[1:
])))
)
最後一行從裡到外分別用了,lambda匿名函式求y-x,這裡x對應li【:-1】是排序後的列表排除了最後乙個元素,y是排除了第乙個元素,兩兩作差,然後將map轉換為列表,用min輸出最小值 CCF 最小差值
試題編號 201712 1 試題名稱 最小差值 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入格式 輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。輸出格式 輸出乙個...
CCF模擬題 1最小差值(Python)
試題編號 201712 1 試題名稱 最小差值 時間限制 1.0s 記憶體限制 256.0mb 給定n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。輸出乙個整數,表示答案。51 5 4 8 20 ...
CCF考試 201712 1最小差值
問題描述 給定n個數,請找出其中相差 差的絕對值 最小的兩個數,輸出它們的差值的絕對值。輸入格式 輸入第一行包含乙個整數n。第二行包含n個正整數,相鄰整數之間使用乙個空格分隔。輸出格式 輸出乙個整數,表示答案。樣例輸入 5 1 5 4 8 20 樣例輸出 樣例說明 相差最小的兩個數是5和4,它們之間...