015拼多多 兩兩配對差值最小

2021-09-27 15:35:08 字數 1143 閱讀 9991

問題描述:

給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?

輸入描述:

一共2行輸入。 第一行為乙個整數n,2<=n<=10000, 第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。

輸出描述:

輸出最小的差值。

示例輸入:

426

43611

4357

1

示例輸出:

1

3

思路:

這題萬級資料限制1s,如果是窮舉的話肯定行不通,得想乙個好點的演算法策略。

我們認為當前最大值和當前最小值進行的配對差值應當是比較小的。所以我們可以根據這個演算法策略來貪心的進行配對,記錄最大值和最小值,返回其差值即可。

ac**:

def

solution()

: n =

int(

input()

) data =

list

(map

(int

,input()

.split())

) maxs =

0 mins =

200while n:

cur_max =

max(data)

cur_min =

min(data)

cur_data = cur_max+cur_min

if cur_data > maxs:

maxs = cur_data

if cur_data < mins:

mins = cur_data

data.remove(cur_max)

data.remove(cur_min)

n -=

2print

(maxs-mins)

solution(

)

牛客 2019拼多多 兩兩配對差值最小

題目描述 給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?輸入描述 一共2行輸入。第一行為乙個整數n,2 n 10000,第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。輸出描述 輸出最小...

牛客網刷題4 兩兩配對差值最小

題目鏈結 題目描述 給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?輸入描述 一共2行輸入。第一行為乙個整數n,2 n 10000,第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。輸出描述...

冒泡演算法(兩兩比較,最小上冒)

假設排序陣列a n 按從小到大排列 int a int length a.length 準備好交換方法 private void swap int j,int i 排序好後列印 for int k 0 k length k 1.冒泡演算法 兩兩比較,把小的往左移 a n 和 a n 1 比較,如果a...