遞增陣列中絕對值最小的數

2021-10-14 03:39:19 字數 640 閱讀 3329

求乙個遞增的整數陣列中,絕對值最小的數。(陣列中可以有正負整數和0,要求複雜度 o(logn))

思路:有序陣列,用二分查詢。如果乙個數大於零,那麼要找的數在他左邊或者是他本身。如果乙個數小於零,那麼要找的數在他右邊或者是他本身。遞迴查詢。

public

class

solution

if(array[end]

<0)

int len = end - start +1;

if(len ==1)

if(len ==2)

else

}int mid =

(start+end)/2

;if(array[mid]

>0)

else

}}

public

static

void

main

(string[

] args)

;// 輸出結果: -1

system.out.

println

(findminabsvalue

(array,

0, array.length -1)

);}

求遞增陣列中絕對值最小的數

思路很簡單 如果陣列頭尾,不是一負一正,則可以直接判斷。如果是一負一正 直接二分搜尋最小正數。再與前面的那個數比較絕對值。求遞增陣列中絕對值最小的數 include cstdio include cassert 從遞增陣列 允許重複 中找出絕對值最小的數 intbsearch const intar...

如何求陣列中絕對值最小的數?

有乙個公升序排列的陣列,陣列中可能有正數,負數或0,求陣列中元素的絕對值最小的數。例如,陣列 10,5,2,7,15,50 該陣列中絕對值最小的數是2 def fingmin1 array if array none or len array 0 print 輸入引數不合理 return 0 min...

絕對值最小

題目詳情 給你乙個陣列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.輸入描述 有多組測...