題目:
小q今天在上廁所時想到了這個問題:有n個數,兩兩組成二元組,差最小的有多少對呢?差最大呢?
例如:輸入
645 32 45 16 6 5
輸出1 2
思路1. 最大差一定是,最大數和最小數之差,所以在排序後對最大數和最小數的數量進行統計即可,特別的情況:當最大和最小一樣時,那麼有(n-1)n/2對;
2. 最小差一定是相鄰兩數之差,分為兩種情況:
1)最小差不為零,進行一次遍歷,將所有等於最小差的相鄰對數計數即可
2)最小差等於零時,如果一段數字為 6 6 6 6 6,那麼對數就是 4+3+2+1,而不是4對。
#include#include #include #includeusing namespace std;
int getnummax(vectorarr)
for (int j = len - 1; j > 0; j--)
return num_max*num_min;
}int getnummin(vectorarr)
int count = 0;
if (min == 0)//要考慮如果有重複的數字,這時候的組合就是n-1+n-2+...1,n為重複數字的最大值
}} else
return count;
}int main()
cout << getnummin(arr) << " " << getnummax(arr) << endl; }
return 0;
}
數字序列中某一位的數字
面試題44 數字序列中某一位的數字 題目 數字以0123456789101112131415 的格式序列化到乙個字串行中。在這 個序列中,第5位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫一 個函式求任意位對應的數字。static int digit at uint32 t inde...
數字序列中某一位的數字
012345678910.序列中,第n位數 def solution n if n 0 return 1 if n 10 return n i 2 確定是第幾位數 sums 10 ret 0while true 一位數 0 9 共10個字元 兩位數 10 99 共180個字元 三位數 100 999...
數字序列中某一位的數字
數字以0123456789101112131415 的格式序列化到乙個字串行中,在這個序列中。第五位 從0開始計數 是5,第13位是1,第19位是4,等等。請寫乙個函式,求任意第n位對應的數字。暴力解法,從0開始計數,數到第n位。以1001位為例子。因為序列前10位是0 9這10個只有1位的數字。序...