74. Search a 2D Matrix
来源:互联网 发布:java编译原理 编辑:程序博客网 时间:2024/06/04 23:42
分别在深度方向和广度方向二查搜索。
题目
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 class Solution { public bool SearchMatrix(int[,] matrix, int target) { if (matrix.Length == 0) return false; //注意这种特殊情况 int rows = matrix.GetUpperBound(0); int columns = matrix.GetUpperBound(1); //bi-search as row int lo = 0, hi = rows + 1; while (lo < hi) { int mi = lo + (hi - lo) / 2; if (matrix[mi, 0] <= target) { lo++; } else hi--; } int pos = --lo; //pos is row index for target if (pos < 0 || pos > rows) return false; //bi-search as column lo = 0; hi = columns + 1; while (lo < hi) { int mi = lo + (hi - lo) / 2; if (matrix[pos, mi] < target) { lo++; } else if (matrix[pos, mi] > target) { hi--; } else return true; } return false; }}
阅读全文
2 0
- LeetCode 74. Search a 2D Matrix
- [LeetCode]74.Search a 2D Matrix
- LeetCode --- 74. Search a 2D Matrix
- [Leetcode] 74. Search a 2D Matrix
- [leetcode] 74.Search a 2D Matrix
- 74. Search a 2D Matrix
- 74. Search a 2D Matrix
- Leetcode 74. Search a 2D Matrix
- [LeetCode]74. Search a 2D Matrix
- 74. Search a 2D Matrix LeetCode
- 74. Search a 2D Matrix
- 74. Search a 2D Matrix
- 74. Search a 2D Matrix
- [LeetCode]74. Search a 2D Matrix
- [LeetCode]74. Search a 2D Matrix
- 74. Search a 2D Matrix
- 74. Search a 2D Matrix
- leetcode 74. Search a 2D Matrix
- 士兵杀敌(二)
- Matlab 串口 数据滤波
- hdu 1527 取石子游戏
- C#判断浮点数是否为0
- 运维中常用的linux命令集锦
- 74. Search a 2D Matrix
- 用sprintf实现sql参数绑定
- hashcat之基于规则的攻击
- 吾家女婿看过来
- 安全防护工具之:Clair
- kali在高清屏幕下如何放大字体与图标
- 和客户沟通的总结
- Python学习之路Day2
- 打字游戏