九章算法面试题76 搜索二维矩阵
2015-06-14 10:36
120 查看
九章算法官网-原文网址
http://www.jiuzhang.com/problem/77/题目
写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:
1) 每行中的整数从左到右是排序的。
2) 每行的第一个数大于上一行的最后一个整数。
在线测试本题
http://www.lintcode.com/zh-cn/problem/search-a-2d-matrix/解答
这道题虽然看似矩阵问题,其实最终可以转换为一维数组,每一行按照顺序已经排好序了同时上一行末尾的元素比下一行第一个元素大, 那么其实可以依次把上一行的末尾接在下一行数组前面,这样最后我们就把二维矩阵转化为一维的排序数组,而二维矩阵第i行第j列,在一维数组的第i*m+j个位置, 然后由于一维排序数组已经排序好,所以我们只用2分查找在一维排序数组里面找到相对应的值就好。参考代码
http://www.jiuzhang.com/solutions/search-a-2d-matrix/相关文章推荐
- 九章算法面试题75 二叉树的最小深度
- 九章算法面试题74 中位数
- 九章算法面试题73 翻转链表II
- 黑马程序员——Java语法基础(二)
- 面试时有哪些话是千万不能说的?
- 如何一周工作80-100小时还能拥有自己的生活?
- 黑马程序员——基础知识总结_static
- 作为一个程序开发者在职场中必须注意的7件事
- 黑马程序员------多线程创建的3种方式
- 黑马程序员---2015.6.13java基础笔记---构造代码块--this--static函数
- 黑马程序员—异常
- 请不要说自己是 Java 程序员
- 作为程序员必须要了解的位,字节,kb,mb,gb
- 总结过去10年的程序员生涯
- 黑马程序员---IO流-字符流
- 黑马程序员————java中的递归原理
- 黑马程序员——Java面向对象(二)之封装、继承、多态、接口等
- 黑马程序员---IO流-字节流
- Java冠军程序员
- 黑马程序员——java基础——IO流