Search a 2D Matrix
来源:互联网 发布:用友t6软件多少钱 编辑:程序博客网 时间:2024/05/16 15:15
74. 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
.
public boolean searchMatrix(int[][] matrix, int target) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return false; int row = matrix.length, col = matrix[0].length; int begin = 0, end = row * col - 1; while(begin <= end){ int mid = begin + (end - begin) / 2; int val = matrix[mid / col][mid % col]; if(val == target) return true; else if(val < target) begin = mid + 1; else end = mid - 1; } return false;
240. Search a 2D Matrix II
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 in ascending from left to right.
- Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following matrix:
[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]
Given target = 5
, return true
.
Given target = 20
, return false
.
public boolean searchMatrix(int[][] matrix, int target) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return false; int i = 0; // row int j = matrix[0].length - 1; // col while (j >= 0 && i <= matrix.length - 1) { int value = matrix[i][j]; if (value == target) return true; else if (target < value) { j--; } else if (target > value) { i++; } } return false; }
阅读全文
0 0
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D matrix
- Search a 2D matrix
- MVP 在项目中的最佳实战(封装篇)
- CSU1021-组合数末尾的零-打表、模拟
- CSU1022-菜鸟和大牛-简单DP
- Mac-显示隐藏文件-快捷键与命令行
- 一个经典的问题的思考: strcpy覆盖内存
- Search a 2D Matrix
- CSU1023-修路-二分
- Seafile 个人网盘配置安装
- CSU1065-Scientific Conference-贪心
- 6174问题
- 使用Ettercap filter进行流量监听和数据篡改
- CSU1086-超市购物-分组背包
- CSU1090-Number Transformation-BFS
- VMware虚拟机磁盘操作占用过高问题