面試-算法 已經排好序的數組中求兩個數的和等于N
摘要:
已知一個拍好序的數組,長度為M在其中找兩個數,其和為N剛剛拿到這個題目的時候,首先的常規想法是遍歷循環求出所有數的和,最終其值為N的就是結果,這個算法時間復雜度為o(N*N)可能還有一些擴展的想法,那就是先把數組中比N大的元素去掉,這樣少檢查幾個元素這是典型的程序員思維,太早開始考慮實現細節了作為一個算法題目首先要把算法復雜度降低下來,然后再考慮常數C。。。不要太早開始考慮這種相對不重要的問題由于要尋找的是一個數對,假設這里存在解的話,考慮用N減去數組中的每一個值生成一個新數組M2,假設M2的值在M中出現,那么就可以找到解,(用兩個指針 一個從M的左邊 一個從M2的右邊)算法復雜度可以做到o( 閱讀全文
posted @ 2011-12-23 22:34 聽說讀寫 閱讀(2958) 評論(6) 推薦(0)
浙公網安備 33010602011771號