ccf試題1 最小差值

2021-09-26 05:07:59 字數 1373 閱讀 8757

問題描述

給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們差的絕對值。

輸入格式

輸入第一行包含乙個整數n。

第二行包含n個正整數,相鄰整數之間使用乙個空格分割。

輸出格式

輸出乙個整數,表示答案。

樣例1

輸入:

5

1 5 4 8 20

輸出:

1
說明:

相差最小的兩個數是5和4,它們之間的差值是1。

樣例2

輸入:

5

9 3 6 1 3

輸出:

0
說明:

有兩個相同的數3,它們之間的差值是0。

資料規模和約定

對於所有評測用例,2<= n <= 1000,每個給定的整數都是不超過10000的正整數。

1、首先接收資料到陣列arr[i]中,資料長度為len;

2、i 的取值為從0到len-1,每次取值後計算arr[i]分別減去arr[i+1]、arr[i+2]、…、arr[len]的差值的絕對值,將結果儲存到陣列temp_sub中,然後求出temp_sub中的最小值儲存到sub[i]中。第2步結束後,就已經對這組資料中的任意兩個資料進行了求絕對值差值的操作了

3、sub陣列中有len-1個資料,求出其中的最小值,即是這組資料中的最小差值。

/*20190815

ccf試題1:最小差值

*/ #include using namespace std;

int main()

//求最小差

int sub[len-1];

int temp_sub[len];

for(int i=0; iarr[j])

else

} sub[i] = temp_sub[i+1];

for(int k=i+2; ktemp_sub[k])

} }

//輸出最小差

int min = sub[0];

for(int i=0; isub[i])

} cout 《以正常邏輯進行了解答,**的時間和空間複雜度都較高,最明顯的是temp_sub陣列存在空間上的浪費。且陣列的索引變來變去,像i+1、i+2什麼的,不便於閱讀。

此次題目的結果是兩個數差值的絕對值,即輸出的數最小是0,所以在計算過程中如果遇到temp_sub[j] = 0;就可以直接輸出0,然後return了,算是個小優化吧。

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,它們之間...