leetcode——74.搜索二维矩阵

class Solution:
    def searchMatrix(self, matrix, target):
        """
        :type matrix: List[List[int]]
        :type target: int
        :rtype: bool
        """
        #print(len(matrix))#行数
        #print(matrix[0])
        #print(len(matrix[0]))#列数
        if len(matrix)==1:
            if target in matrix[0]:
                return True
            else:
                return False
        for i in range(len(matrix)):
            #print(matrix[i])
            if matrix[i][-1]<target:
                i+=1
            else:
                if target in matrix[i]:
                    return True
                else:
                    return False

执行用时80ms

                                                 ——2019.9.29

 


 

 

public boolean searchMatrix(int[][] matrix, int target) {
        int m = matrix.length;   //m为行数
        if(m == 0){
            return false;
        }
        int n = matrix[0].length;  //n为列数
        //先找到对应行,再在该行进行二分查找
        if(n == 0){
            return false;
        }
        int i = 0;
        while(i<m){
            if(matrix[i][n-1] == target){
                return true;
            }else if(matrix[i][n-1] < target){
                i++;
            }else{  //对第i行进行搜索
                int left = 0,right = n;
                while(left<right){
                    int mid = left + (right - left)/2;
                    if(matrix[i][mid] == target){
                        return true;
                    }else if(matrix[i][mid] > target){
                        right = mid;
                    }else{
                        left = mid+1;
                    }
                }
                return false;
            }
        }
        return false;
    }

顺利完成

 

 

——2020.7.15

posted @ 2019-09-29 14:33  欣姐姐  阅读(133)  评论(0编辑  收藏  举报