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