劍指Offer刷題(python版)
牛客網上隻支持python 2.7版本,實際和3.0及以上版本有區別。
第一天:
二維數組查找的問題:
解題思路:
例如數組: 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