小q今天在上廁所時想到了這個問題:有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?
輸入描述:
輸入包含多組測試資料。
對於每組測試資料:
n - 本組測試資料有n個數
a1,a2...an - 需要計算的資料
保證: 1<=n<=100000,0<=ai<=int_max.
輸出描述:
對於每組資料,輸出兩個數,第乙個數表示差最小的對數,第二個數表示差最大的對數。
輸入例子:
6
45 12 45 32 5 6
輸出例子:
1 2
這個題目是要我們找最大的差和最小的差的個數,那麼我們分開想:
1.最大的差,這個怎麼找呢?最大的差就是最大的數和最小數的差,那麼取決於這最小的數和最大的數的個數,假設乙個最小數,3個最的數,就有三個相同的最大差,那麼這個就很好想了。max = 最大數個數 * 最小數個數
2.最小的差。這個麻煩一點,因為任何兩個數都可能產生最小差,那麼我這裡必須遍歷所有可能的差值,找到最小差值,然後再統計最小差的個數min。
3.首先,先對陣列進行乙個排序,無論是對於找max或者min(這樣的陣列相鄰的相減肯定是得到:有可能是最小差的所有差值,省去了計算很多無用的差值)都是大有幫助。
#include
#include
#include
using
namespace
std;
int main()
for(int i = 1;i < n;i++)
}if(res[n-1] == res[0])
cout
<" "
0;}
牛客網 有趣的數字
程式設計題 有趣的數字 時間限制 1秒空間限制 32768k 小q今天在上廁所時想到了這個問題 有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?輸入描述 輸入包含多組測試資料。對於每組測試資料 n 本組測試資料有n個數 a1,a2 an 需要計算的資料 保證 1 n 100000,0 ai ...
牛客網答題筆記 構造佇列
小明同學把1到n這n個數字按照一定的順序放入了乙個佇列q中。現在他對佇列q執行了如下程式 while q.empty 佇列不空,執行迴圈 做取出隊頭的值操作的時候,並不彈出當前隊頭。小明同學發現,這段程式恰好按順序輸出了1,2,3,n。現在小明想讓你構造出原始的佇列,你能做到嗎?輸入描述 第一行乙個...
牛客網答題筆記 構造回文
給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。輸入例子 abcda goo...