Re: [問題] 貌似Facebook面試題目

看板Prob_Solve (計算數學 Problem Solving)作者 (...)時間12年前 (2012/03/18 23:44), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《saladim (殺拉頂)》之銘言: : 有人跟我說這是一提FB的面試題目, 想了一下想不太出合適的解法, 題目如下: : 給一個sorted array, 找出array裡面有沒有某兩個元素加起來等於另外一個元素, : 有的話請列印出來, 沒有的話請回答沒有. : 嘗試利用 sorted元素大小關係跟binary search去做, 但是想不出來阿!!!! : 請各位大大提供一下意見.....感激不盡..... 這邊提供一個另類的想法。 想像一個二維陣列 sum[i][j] = array[i] + array[j] 可以發現往右往下 sum 會變大,往左往上 sum 會變小, 其實 sum 就是一個排序過的二維陣列。 在 sum 裡面做 binary search 需要 O(N) 時間。 套用前面 LPH66 與 stimim 板友推文裡的解法, 窮舉 array 的每一個數字,在 sum 裡面二分搜尋, 總共就是 O(NN) 時間了。 那麼能不能更快呢?我也不知道... 窮舉 array 的每一個數字,是由小到大窮舉的話, 每一個數字在 sum 裡面的二分搜尋路線,就是逐漸偏右、偏下, 這些路線應該會有很多地方重疊, 如果可以把重疊的路線省略掉的話,應該可以更快吧? 以上 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.130.247
文章代碼(AID): #1FPWB1NS (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #1FPWB1NS (Prob_Solve)