題目詳情
給你乙個陣列a[n],請你計算出ans=min(|a[i]+a[j]|)(0<=i,j
例如:a=,
則:|a[0] + a[0]| = |1 + 1| = 2.
|a[0] + a[1]| = |1 + 4| = 5.
|a[0] + a[2]| = |1 + (-3)| = 2.
|a[1] + a[1]| = |4 + 4| = 8.
|a[1] + a[2]| = |4 + (-3)| = 1.
|a[2] + a[2]| = |(-3) + (-3)| = 6.
所以ans=1.
輸入描述:
有多組測數資料,每組資料有兩行,第一行包含乙個正整數n(0輸入以檔案結束。
輸出描述:
對於每組資料,輸出相應的答案。
思路:這個題看到資料規模為100000,給人的想法好像就是演算法中要設計到二分搜尋。
那麼如何二分呢?題目要求的是min(|a[i]+a[j]|)(0<=i,j對與陣列中的某個元素num,
如何快速得到
min(|num+a[i]|) (0<=i可以將其變形為min(|a[i]-(-num)|),
這個放到座標抽上就是計算距離
點-num最近的點,這個就可以用二分對-num進行查詢了。
c++**:
CSDN挑戰程式設計 《絕對值最小》
給你乙個陣列a n 請你計算出ans min a i a j 0 i,j 例如 a 則 a 0 a 0 1 1 2.a 0 a 1 1 4 5.a 0 a 2 1 3 2.a 1 a 1 4 4 8.a 1 a 2 4 3 1.a 2 a 2 3 3 6.所以ans 1.輸入描述 有多組測數資料,每...
CSDN挑戰程式設計 《絕對值最小》
給你乙個陣列a n 請你計算出ans min a i a j 0 i,j 比如 a 則 a 0 a 0 1 1 2.a 0 a 1 1 4 5.a 0 a 2 1 3 2.a 1 a 1 4 4 8.a 1 a 2 4 3 1.a 2 a 2 3 3 6.所以ans 1.輸入描寫敘述 有多組測數資料...
絕對值相關
abs 是如何來求絕對值的並且看看它的效率如何,所以反彙編出來看了下 sar 0x1f,edx xor edx,eax sub edx,eax 對應c語言 求int a的絕對值 b a 31 a a b a a b 起初還沒想透為什麼這樣就能得到絕對值,再細想,對右移理解有誤 微機原理忘光了,汗顏 ...