阅读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问题啊