閱讀152 返回首頁    go 阿裏雲 go 技術社區[雲棲]


劍指Offer刷題(python版)

牛客網上隻支持python 2.7版本,實際和3.0及以上版本有區別。

第一天:

二維數組查找的問題:

91e9bb9008ee811726e6cd357074a4c1459dc624







解題思路:

例如數組: 1 2 8 9

                     2 4 9 12

                     4 7 10 13

                     6 8 11 15

首先看二維數組中右上角的數字,如果該數字等於要查找的數字,則查找結束;如果該數字大於要查找的數字,則剔除這一列;如果該數字小於要查找的數字,則剔除該數字所在的行。也就是說如果要查找的數字不在數組的右上角,則每一次都在數組的查找範圍內剔除一行或者一列,每一步都可以縮小範圍,直到找到要查找的數字,或者查找範圍為空。

例如,要查找7,首先比較7和9,9大於7,則刪除第4列;再比較7和8,8大於7,則刪除第3列。這時數組為{[1,2],[2,4],[4,7],[6,8]}。再比較2和7,2小於7,則刪除第1行;再比較4和7,則刪除第二行,再比較7和7,查找完成。

                                                                                                                                                                                          

最後更新:2017-05-23 23:01:40

  上一篇:go  利用TFRecord和HDFS準備TensorFlow訓練數據
  下一篇:go  Java問題啊