[LeetCode][JavaScript]Search a 2D Matrix
2015-07-25 15:51
543 查看
Search a 2D Matrix
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ]
Given target =
3, return
true.
https://leetcode.com/problems/search-a-2d-matrix/
虽然是个二维数组,但是有序,当成一维数组二分,计算出row和col的下标。
如果错用两次二分,一次做行一次做列,写起来就很复杂了。
/** * @param {number[][]} matrix * @param {number} target * @return {boolean} */ var searchMatrix = function(matrix, target) { var m = matrix.length, n = matrix[0].length; var i = 0, j = m * n - 1, middle, row, col, curr; while(i <= j){ middle = parseInt((i + j) / 2); row = parseInt(middle / n); col = middle % n; curr = matrix[row][col]; if(target === curr){ return true; } if(target > curr){ i = middle + 1; }else{ j = middle - 1; } } return false; };
相关文章推荐
- JavaScript类继承及实例化的方法
- JS高级程序设计23-离线应用与客户端存储
- JavaScript对Cookie进行读写操作实例
- json <--->List集合,实体类 之间的相互转换
- 关于Javascript游戏按键操控移动的思考
- 使用JSONP解决Ajax跨域访问问题
- JS中全选功能
- js里面关于位置坐标的总结
- JS中的异常处理方法
- jsp文件 js 获取session方法
- JavaScript的类及面向对象编程
- JS获取随机颜色函数
- javascript事件代理
- JavaScript中instanceof与typeof运算符的用法及区别详细解析
- 项目中的连接本地服务器以及JSON解析
- Javascript MVC 学习笔记(二) 控制器和状态
- jsp部分
- [原创]使用ajaxFileUpload.js上传文件时附带额外参数。
- JS高级程序设计20-JSON
- [转]用 Jsp 的 Session 机制编写的购物车程序