1. 程式人生 > >【leetcode】74. (Medium)Search a 2D Matrix

【leetcode】74. (Medium)Search a 2D Matrix

解題思路:
先找到在哪一行 再找在哪個位置


提交程式碼:

class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
    	if(matrix.length==0||matrix[0].length==0)	return false;
    	if(matrix[0][0]>target||matrix[matrix.length-1][matrix[0].length-1]<target)
    		return false;
      int mid,p1=
0,p2=matrix.length-1,p3=0,p4=matrix[0].length-1; while(p1<=p2) { mid=(p1+p2)/2; if(matrix[mid][0]==target) return true; if(matrix[mid][0]<target) p1=mid+1; else p2=mid-1; } while(p3<=p4) { mid=(p3+p4)/2; if(matrix[p2][mid]==target) return
true; if(matrix[p2][mid]<target) p3=mid+1; else p4=mid-1; } return false; } }

執行結果:

在這裡插入圖片描述