标签:
【题目】
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ]
Given target = 3
, return true
.
【分析】
1.采用二分搜索的思想
2.假设从右上角开始搜索,若当前值大于target,则向左移;若当前值小于target,则向右移。
【算法实现】
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int rows=matrix.length; int cols=matrix[0].length; int x=0; int y=cols-1; while(x<rows&&y>=0) { if(matrix[x][y]==target) return true; else if(matrix[x][y]>target) y--; else x++; } return false; } }
标签:
原文地址:http://www.cnblogs.com/hwu2014/p/4462471.html