Search a 2D Matrix IITotal Accepted:
520 Total Submissions:
1659
Write an efficient algorithm, searches for a value in a m x n Matrix. This matrix has the following properties:
- Integers in each row is sorted in ascending from left to right.
- Integers in each column is sorted in ascending from top to bottom.
For example,
Consider the following matrix:
[ [1, 4, 7, one, a], [2, 5, 8, A, 3], [6, 9,, +, + ], [10, 13, 14, , [18, 21, 23, 26, 30]]
Given Target = 5 , return true .
Given Target = 20 , return false .
Ideas
This question is a classic problem, I met at Microsoft and Yelp's onsite and the electric plane.
From the upper-right corner, compare the values of target and matrix[i][j]. If it is less than target, the row cannot have this number, so i++; If it is greater than target, the column cannot have this number, so J--. Encountering a boundary indicates that the matrix does not contain a target.
[CODE]
public class Solution {public Boolean Searchmatrix (int[][] matrix, int target) { if (matrix.length==0 | | matrix[0 ].length==0) return false; int i=0, j=matrix[0].length-1; while (I<matrix.length && j>=0) { int x = matrix[i][j]; if (target = = x) return true; else if (target < x)--j; else ++i; } return false; }}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Leetcode 240:search a 2D Matrix II