Search a 2D Matrix II 解题报告
2017-04-26 11:16
369 查看
Search a 2D Matrix II
Description
Write an efficient algorithm that searches for a value in an m x n matrix, return the occurrence of it.This matrix has the following properties:
Integers in each row are sorted from left to right.
Integers in each column are sorted from up to bottom.
No duplicate integers in each row or column.
Example
Consider the following matrix: [ [1, 3, 5, 7], [2, 4, 7, 8], [3, 5, 9, 10] ] Given target = 3, return 2.
Challenge
O(m+n) time and O(1) extra space实现思路
对比《Search a 2D Matrix 解题报告》 ,题目区别在于每一行的最后一个不一定小于下一行的第一个。但我们仔细观察,还是能找到规律,就是第一行的最后一个,往左总是小于本身,往下总是大于本身,我们可以根据这个特点,从这个元素开始查找。一旦target>当前元素,则往下找,而target<当前元素,则往左找,最后必定会走到最后一行或第一列,遍历到所有可能等于target值的元素。
这里有一点需要注意,如果在中途找到等于target的元素,如示例中第1行第2列的3,我们可以直接做到它的左下,即2(第二行,第一列)所在位,再继续查找。
/** *@param matrix: A list of lists of integers * @param: A number you want to search in the matrix * @return: An integer indicate the occurrence of target in the given matrix */ public int searchMatrix(int[][] matrix, int target) { // write your code herey int row = matrix.length; if(row == 0){ return 0; } int col = matrix[0].length; if(col == 0){ return 0; } int ret = 0; int x = 0, y = col - 1; while(x < row && y >= 0){ if(matrix[x][y] == target){ ret ++; y--; }else if(matrix[x][y] > target){ y--; }else{ x ++; } } return ret; }
相关文章推荐
- 【LeetCode】240. Search a 2D Matrix II 解题报告(Python)
- [Leetcode] 240. Search a 2D Matrix II 解题报告
- [leetcode] 240. Search a 2D Matrix II 解题报告
- LeetCode 240. Search a 2D Matrix II 解题报告
- 【LeetCode】74. Search a 2D Matrix 解题报告(Python)
- leecode 解题总结:240. Search a 2D Matrix II
- LeetCode74 Search a 2D Matrix 解题报告
- Leetcode 74. Search a 2D Matrix 2D矩阵查找 解题报告
- Search a 2D Matrix 解题报告
- 【LeetCode】Search a 2D Matrix 解题报告
- leetcode解题报告:240. Search a 2D Matrix II
- [leetcode] 74. Search a 2D Matrix 解题报告
- Leetcode解题报告:74. Search a 2D Matrix
- [leetcode 240]Search a 2D Matrix II
- Search a 2D Matrix II
- Search a 2D Matrix II
- 【LeetCode】Validate Binary Search Tree 解题报告(Java & Python)
- [Lintcode] Search a 2D Matrix II搜索二维矩阵 II
- leetcode解题报告(4):Search in Rotated Sorted ArrayII
- LeetCode 240. Search a 2D Matrix II(java)