二维数组搜素--进军硅谷
数组每行的数都是从左到右排序好的,每行的首数大于上行的尾数。在这个二维数组中搜素某一个数。
我当时看到这题时,想法是使用四次二分查找,每一次缩小搜素的矩形区域,因为以前在leecode上做的那题是行元素递增,列元素递增,这两题还是有点不一样。书中所给解法是将二维映射成一维数组A,A有m*n个元素,那么A[K]=matrix[i][j],当k=i*n+j,即i=k/n,j=k%n.然后对这个一维数组进行二分查找,O(log(m*n).
数组每行的数都是从左到右排序好的,每行的首数大于上行的尾数。在这个二维数组中搜素某一个数。
我当时看到这题时,想法是使用四次二分查找,每一次缩小搜素的矩形区域,因为以前在leecode上做的那题是行元素递增,列元素递增,这两题还是有点不一样。书中所给解法是将二维映射成一维数组A,A有m*n个元素,那么A[K]=matrix[i][j],当k=i*n+j,即i=k/n,j=k%n.然后对这个一维数组进行二分查找,O(log(m*n).
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步