面试题参考
? 題目的參考和解答思路來自http://www.cnblogs.com/nokiaguy/archive/2013/01/29/2881476.html
問題描述:
?求一個(gè)已經(jīng)排序的數(shù)組(升序),數(shù)組中可能有正數(shù),負(fù)數(shù)或0,求數(shù)組中元素的絕對(duì)值最小的數(shù),要求不能用順序的比較方法(復(fù)雜度需小于
O(n))。
例如,數(shù)組{-20,-13,-4,6,77,200},絕對(duì)值最小是4
問題分析:
?? 根據(jù)題意知道,數(shù)組是排好序的,既然已經(jīng)排好序了,哪我按照常識(shí),就應(yīng)該知道絕對(duì)值最小的一定是中間的某個(gè)數(shù)?所以我認(rèn)為,知道數(shù)組的大小,然后取其中間的數(shù),如果是數(shù)組的長(zhǎng)度是奇數(shù),那就是中間的數(shù),如果是偶數(shù),那就比較中間的兩個(gè)數(shù)的絕對(duì)值即可。
參考了其中一人的回帖,然后自己把它用c語言實(shí)現(xiàn)下
代碼:
View Code總結(jié):
? ?剛開始自己寫的求數(shù)組的長(zhǎng)度的代碼,出現(xiàn)問題,數(shù)組的訪問越界了,現(xiàn)在想來,以前自己有些代碼也是這樣寫的,看來以前測(cè)試通過可能也是湊巧啦,對(duì)數(shù)組的定義與使用要加深理解,如定義數(shù)組的時(shí)候?yàn)樗x值,這時(shí)系統(tǒng)就會(huì)根據(jù)它的賦值,為它分配了固定空間大小,你要計(jì)算長(zhǎng)度的時(shí)候就不能采取遍歷的方法,當(dāng)數(shù)組為空時(shí)返回其長(zhǎng)度,這是個(gè)嚴(yán)重的錯(cuò)誤。意識(shí)到這個(gè)問題后,采取了鏈表的方法,對(duì)鏈表運(yùn)用加深了理解。
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangyingai/p/7099089.html
總結(jié)
- 上一篇: Django xadmin引入Djang
- 下一篇: [转]Eclipse插件开发之基础篇(2