題目鏈結
題目描述
給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?
輸入描述
一共2行輸入。
第一行為乙個整數n,2<=n<=10000, 第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。
輸出描述
輸出最小的差值。
示例1輸入4
2 6 4 3輸出1
示例2輸入6
11 4 3 5 7 1輸出3
題目分析
此題輸入是多行輸入,所以不用我一直練的js語言。
考慮到我熟悉的c語言沒有sort庫函式,所以使用c++語言完成此題。
兩兩配對後,最大值和最小值的差值最小,就說明兩兩配對的時候就應該選擇最小值和最大值配對,第二小值和第二大值配對……
因此,首先將輸入的陣列使用sort函式排序。
將排序後的陣列兩兩配對,配對方法:兩個值的下標相加為n-1,即:sum[i] = arr[i]+arr[n-1-i];
將兩兩配對後的新陣列使用sort函式排序。
排序後的陣列中,第乙個數值就是最小值,最後乙個數值就是最大值。
#include
#include
using
namespace std;
intmain()
sort
(arr,arr+n)
;int sum[
100]
;for
(int i=
0;i)sort
(sum,sum+n/2)
;int res;
res = sum[n/2-
1]-sum[0]
;printf
("%d"
,res)
;return0;
}
牛客 2019拼多多 兩兩配對差值最小
題目描述 給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?輸入描述 一共2行輸入。第一行為乙個整數n,2 n 10000,第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。輸出描述 輸出最小...
015拼多多 兩兩配對差值最小
問題描述 給定乙個長度為偶數的陣列arr,將該陣列中的數字兩兩配對並求和,在這些和中選出最大和最小值,請問該如何兩兩配對,才能讓最大值和最小值的差值最小?輸入描述 一共2行輸入。第一行為乙個整數n,2 n 10000,第二行為n個數,組成目標陣列,每個數大於等於2,小於等於100。輸出描述 輸出最小...
牛客網刷題 兩數之和
給出乙個整數陣列,請在陣列中找出兩個加起來等於目標值的數,你給出的函式twosum 需要返回這兩個數字的下標 index1,index2 需要滿足 index1 小於index2.注意 下標是從1開始的 假設給出的陣列中只存在唯一解 例如 給出的陣列為 目標值為90 輸出 index1 1,inde...